home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / INTER53D.ZIP / INTERRUP.O < prev    next >
Text File  |  1997-01-12  |  182KB  |  5,137 lines

  1. Interrupt List, part 15 of 16
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  3. --------V-79---------------------------------
  4. INT 79 - AVATAR.SYS - FAST GET KEYSTROKE
  5. Return: CF set if no keystroke available
  6.         AX = FFFFh
  7.     CF clear if key pressed
  8.         AX = keystroke
  9. Program: AVATAR.SYS is a CON driver by George Adam Stanislav which interprets
  10.       AVATAR command codes just as ANSI.SYS interprets ANSI commands
  11. Note:    if a keystroke is available, it is removed from the keyboard buffer
  12.       before being returned
  13. SeeAlso: INT 29,INT 2F/AX=1A00h/BX=4156h
  14. --------E-79---------------------------------
  15. INT 79 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ1
  16. Notes:    this vector is overwritten when GO32 starts but is not restored by
  17.       early versions of the extender
  18.     the newest versions of GO32 dynamically allocate the vectors used
  19.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  20. SeeAlso: INT 09,INT 78"GO32",INT 7A"GO32"
  21. --------d-79---------------------------------
  22. INT 79 U - ADP-60 IDE adapter - ???
  23. SeeAlso: INT 78"ADP-60"
  24. --------E-79---------------------------------
  25. INT 79 - DBOS DOS Extender
  26.     details not available
  27. Desc:    this interrupt is used by an MS Windows virtual device driver with
  28.       which the DBOS extender communicates when run inside a Windows
  29.       Enhanced Mode DOS box
  30. SeeAlso: INT 78"DBOS"
  31. --------A-790001-----------------------------
  32. INT 79 R - AutoCAD Device Interface - DIGITIZER - INITIALIZE
  33.     AX = 0001h
  34.     BX = interface level (0001h)
  35. Return: AX = status (0000h initialization failed, 0001h init successful)
  36.     BX = digitizer type
  37.         0000h relative pointing device (mouse, etc.)
  38.         0001h digitizing tablet
  39.     CX = digitizer dataflow type
  40.         0000h continuous
  41.         0001h pauses between packets
  42. SeeAlso: AX=0002h,AX=0003h,INT 7A/AX=0001h"AutoCAD"
  43. --------A-790002-----------------------------
  44. INT 79 R - AutoCAD Device Interface - DIGITIZER - TERMINATE
  45.     AX = 0002h
  46. SeeAlso: AX=0001h,AX=0003h
  47. --------A-790003-----------------------------
  48. INT 79 R - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS
  49.     AX = 0003h
  50. Return: AX = status
  51.         0000h nothing
  52.         0002h tracking point (no button pressed)
  53.         BX = X coordinate
  54.         CX = Y coordinate
  55.         0003h picked point (button 0,A,B,C,D pressed)
  56.         BX = X coordinate
  57.         CX = Y coordinate
  58.         0004h button pick
  59.         BX = button number
  60.         0005h button and coordinates
  61.         BX = button number
  62.         CX = X coordinate
  63.         DX = Y coordinate
  64. SeeAlso: AX=0001h,AX=0002h
  65. --------N-7A---------------------------------
  66. INT 7A U - Topware Network Operating System - ???
  67.     AL = ???
  68.     ???
  69. Return: ???
  70. SeeAlso: INT 21/AX=FF00h"Topware",INT 2F/AX=FF00h
  71. --------N-7A---------------------------------
  72. INT 7A - X.PC Packet software interface
  73.     ES:BX -> parameter block
  74. SeeAlso: INT 60/AX=01FFh
  75. --------E-7A---------------------------------
  76. INT 7A - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ2
  77. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  78.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  79. Notes:    this vector is overwritten when GO32 starts but is not restored by
  80.       early versions of the extender
  81.     the newest versions of GO32 dynamically allocate the vectors used
  82.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  83. SeeAlso: INT 0A"IRQ2",INT 79"GO32",INT 7B"GO32"
  84. --------P-7A---------------------------------
  85. INT 7A O - PRINDIR - API (moved to INT 7C, then INT 2F/AX=7F00h)
  86. SeeAlso: INT 7C"PRINDIR",INT 2F/AX=7F00h"PRINDIR"
  87. --------N-7A---------------------------------
  88. INT 7A - Novell NetWare - LOW-LEVEL API - Notes
  89. Note:    this interrupt is used for IPX/SPX access in NetWare versions through
  90.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  91.       entry point even though INT 7A still exists.    For both INT 7A and
  92.       the FAR entry point, BX contains the function number; IPX is
  93.       sometimes called internally with BX bit 15 set, which causes the
  94.       handler to bypass some initial checks and an optional call to the
  95.       IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h
  96.       (see #2204)
  97. SeeAlso: INT 2F/AX=7A00h,INT 64"Novell",INT 7A/BX=0000h
  98. --------N-7A----BX0000-----------------------
  99. INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET
  100.     BX = 0000h
  101.     AL = socket longevity
  102.         00h open until close or terminate
  103.         FFh open until close
  104.     DX = socket number (high byte in DL)
  105.         0000h dynamic allocation
  106.         else  socket to open (see #3058)
  107. Return: AL = return code
  108.         00h success
  109.         DX = socket number
  110.         FEh socket table full
  111.         FFh socket already open
  112. Notes:    TSRs which need to use sockets should set AL to FFh, non-resident
  113.       programs should normally use AL=00h
  114.     IPX can be configured to support up to 150 open sockets on a
  115.       workstation, and defaults to 20
  116.     this function is supported by Advanced NetWare 1.02+
  117. SeeAlso: INT 7A/BX=0001h,INT 7A/BX=0004h,INT 7A/BX=0023h
  118.  
  119. (Table 3058)
  120. Values for IPX socket number:
  121.  0451h    File Service (NetWare Core Protocol)
  122.  0452h    Service Advertising Protocol (see #3066)
  123.  0453h    Routing Information Packet (see #3069)
  124.  0455h    NetBIOS Packet
  125.  0456h    diagnostics
  126.  0457h    server serial numbers (labeled "Copy Protection" by Lanalyzer)
  127.  2222h    NetWare Core Protocol
  128.  4000h-7FFFh used for dynamic allocation
  129.  4444h    Brightwork Development's SiteLock server
  130.  5555h    Brightwork Development's SiteLock client (workstation)
  131.  8000h-FFFFh assigned by Novell
  132.  869Ch    ID Software's DOOM
  133. Note:    SiteLock is an application metering product using IPX to communicate
  134.       between the application and the license server
  135. --------N-7A----BX0001-----------------------
  136. INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET
  137.     BX = 0001h
  138.     DX = socket number (high byte in DL) (see #3058)
  139. Notes:    also cancels events set by any Event Control Blocks for the socket
  140.     the program must close all open sockets before terminating
  141.     this function is supported by Advanced NetWare 1.02+
  142. SeeAlso: BX=0000h
  143. --------N-7A----BX0002-----------------------
  144. INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET
  145.     BX = 0002h
  146.     ES:SI -> target internetwork address (see #3073 at INT 7A/BX=000Bh)
  147.     ES:DI -> 6-byte buffer for local target
  148. Return: AL = return code
  149.         00h success
  150.            CX = expected one-way transfer time (clock ticks) for a 576-byte
  151.               packet
  152.            ES:DI -> local target
  153.         FAh unsuccessful (no path to destination)
  154. Notes:    the internetwork address consists of a 4-byte network address followed
  155.       by a 6-byte node address.  The local target is only a 6-byte node
  156.       address.  If the target is in the same network, the local target is
  157.       just the node address of target; otherwise, the local target is the
  158.       node address of the bridge that leads to the target.
  159.     this function may be called from inside IPX and AES Event Service
  160.       Routines, but not from other interrupt handlers
  161.     this function is supported by Advanced NetWare 1.02+
  162. SeeAlso: BX=0009h
  163. --------N-7A----BX0003-----------------------
  164. INT 7A - Novell NetWare - IPX Driver - SEND PACKET
  165.     BX = 0003h
  166.     ES:SI -> Event Control Block (see #3059,#3060)
  167. Notes:    returns immediately; IPX attempts to send the packet in the background
  168.     this function is supported by Advanced NetWare 1.02+
  169.     this function is nearly identical to BX=000Fh, except that it always
  170.       copies the source address into the IPX header assumed to be at the
  171.       beginning of the first fragment
  172. SeeAlso: BX=0004h,BX=000Fh,INT 21/AH=EEh"Novell"
  173.  
  174. Format of IPX Event Control Block:
  175. Offset    Size    Description    (Table 3059)
  176.  00h    DWORD    Link
  177.  04h    DWORD    -> Event Service Routine (00000000h if none) (see #3063)
  178.  08h    BYTE    in use flag (see #3061)
  179.  09h    BYTE    completion code (see #3062)
  180.  0Ah    WORD    (big-endian) socket number (see #3058)
  181.  0Ch  4 BYTEs    IPX workspace
  182.  10h 12 BYTEs    driver workspace
  183.  1Ch  6 BYTEs    immediate local node address
  184.  22h    WORD    fragment count
  185.  24h    var    fragment descriptors
  186.         Offset    Size    Description
  187.          00h    DWORD    -> fragment data
  188.          04h    WORD    size of fragment in bytes.
  189. Notes:    ESR is a far procedure that is called when the ECB has been handled.
  190.       On call, the in use flag is zero if the ECB has been handled,
  191.       non-zero otherwise. If the flag is zero, the completion code holds
  192.       the result of the event.
  193.     the first fragment should start with an IPX header (see #3064)
  194.     all fragments are concatenated and sent in one piece
  195.     node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes
  196. SeeAlso: #3060
  197.  
  198. Format of AES-ECB:
  199. Offset    Size    Description    (Table 3060)
  200.  00h    DWORD    Link
  201.  04h    DWORD    ESR (Event Service Routine) address (see #3063)
  202.  08h    BYTE    in use flag (see #3061)
  203.  09h  5 BYTEs    AES workspace
  204. SeeAlso: #3059
  205.  
  206. (Table 3061)
  207. Values for ECB in use flag:
  208.  00h    available
  209.  E0h    AES temporary
  210.  F6h    \ special IPX/SPX processing for v3.02+
  211.  F7h    /
  212.  F8h    IPX in critical section
  213.  F9h    SPX listening
  214.  FAh    processing
  215.  FBh    holding
  216.  FCh    AES waiting
  217.  FDh    AES couting down delay time
  218.  FEh    awaiting packet reception
  219.  FFh    sending packet
  220. SeeAlso: #3059,#3060,#3062
  221.  
  222. (Table 3062)
  223. Values for ECB completion code:
  224.  00h    success
  225.  ECh    remote terminated connection without acknowledging packet
  226.  EDh    abnormal connection termination
  227.  EEh    invalid connection ID
  228.  EFh    SPX connection table full
  229.  F9h    event should not be cancelled
  230.  FAh    cannot establish connection with specified destination
  231.  FCh    cancelled
  232.  FDh    malformed packet
  233.  FEh    packet undeliverable
  234.  FFh    physical error
  235. SeeAlso: #3059,#3061
  236.  
  237. (Table 3063)
  238. Values Event Service Routine is called with:
  239.     AL = caller's identity (00h = AES, FFh = IPX)
  240.     ES:SI -> event control block
  241.     interrupts disabled
  242. Return: all registers preserved
  243. SeeAlso: #3059,#3064
  244.  
  245. Format of IPX header:
  246. Offset    Size    Description    (Table 3064)
  247.  00h    WORD    (big-endian) checksum
  248.  02h    WORD    (big-endian) length in bytes of total packet
  249.  04h    BYTE    transport control
  250.  05h    BYTE    packet type (see #3065)
  251.  06h 10 BYTEs    destination internetwork address
  252.  10h    WORD    (big-endian) destination socket
  253.  12h 10 BYTEs    source internetwork address
  254.  1Ch    WORD    (big-endian) source socket
  255. Notes:    an IPX packet has the identical format as a Xerox Network Standard
  256.       (XNS) packet
  257.     the application must set packet type, destination address, and
  258.       destination socket; IPX/SPX set the remaining fields
  259. SeeAlso: #3059,#3075
  260.  
  261. (Table 3065)
  262. Values for IPX packet type:
  263.  00h    unknown packet type
  264.  01h    routing information packet
  265.  02h    echo packet
  266.  03h    error packet
  267.  04h    packet exchange packet (always use this one for data)
  268.  05h    SPX packet (see #3075)
  269.  11h    NetWare Core Protocol
  270.  14h    Propagated Packet (for NetWare), NetBIOS name packet
  271.  15h-1Eh experimental protocols
  272. Note:    undocumented packet type 14h will cross up to 16 networks deep in
  273.       all directions; as Aaron Martin of Origin Systems discovered, the
  274.       first 64 bytes of the IPX data in such packets should be considered
  275.       reserved, as IPX places the traversed server nodes there.
  276.  
  277. Format of Service Advertising Protocol Service Query Packet:
  278. Offset    Size    Description    (Table 3066)
  279.  00h 30 BYTEs    IPX header
  280.  1Eh    WORD    (big-endian) query type
  281.         0001h general find service
  282.         0003h find nearest server
  283.  20h    WORD    (big-endian) server type
  284.         (see #1224 at INT 21/AH=E3h"CONNECTION CONTROL")
  285. SeeAlso: #3067
  286.  
  287. Format of Service Advertising Protocol Server Identification Packet:
  288. Offset    Size    Description    (Table 3067)
  289.  00h 30 BYTEs    IPX header
  290.  1Eh    WORD    (big-endian) response type
  291.         0002h general service
  292.         0004h nearest service
  293.  20h 64N BYTEs    server entries (1-7) (see #3068)
  294. SeeAlso: #3066,#3069
  295.  
  296. Format of SAP server entry:
  297. Offset    Size    Description    (Table 3068)
  298.  00h    WORD    (big-endian) server type
  299.         (see #1224 at INT 21/AH=E3h"CONNECTION CONTROL")
  300.  02h 48 BYTEs    ASCIZ server name
  301.  32h  2 WORDs    (big-endian) network number
  302.  34h  3 WORDs    (big-endian) node number
  303.  3Ch    WORD    (big-endian) socket number
  304.  3Eh    WORD    (big-endian) number of hops between caller and server
  305.         10h = Server Shutdown Advertising Packet
  306. SeeAlso: #3067
  307.  
  308. Format of IPX Routing Information packet:
  309. Offset    Size    Description    (Table 3069)
  310.  00h 30 BYTEs    IPX header
  311.  1Eh    WORD    operation (0001h request, 0002h response)
  312.  20h 8N BYTEs    network entries (1-50) (see #3070)
  313. SeeAlso: #3067
  314.  
  315. Format of RIP network entry:
  316. Offset    Size    Description    (Table 3070)
  317.  00h    DWORD    network number (FFFFFFFFh = general request)
  318.  04h    WORD    (response) number of hops
  319.  06h    WORD    (response) number of clock ticks to reach destination
  320. --------N-7A----BX0004-----------------------
  321. INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET
  322.     BX = 0004h
  323.     ES:SI -> Event Control Block (see BX=0003h)
  324. Return: AL = status
  325.         00h successful
  326.         FFh no listening socket for packet
  327. Desc:    this function provides IPX with an ECB for receiving an IPX packet, but
  328.       does not wait for a packet to arrive
  329. Notes:    the application must open a socket and initialize the ECB's ESR
  330.       address, socket number, fragment count, and fragment descriptor
  331.       fields before invoking this function
  332.     there is no limit on the number of ECBs which may simultaneously be
  333.       listening on a socket
  334.     this function is supported by Advanced NetWare 1.02+
  335. SeeAlso: BX=0000h,BX=0003h
  336. --------N-7A----BX0005-----------------------
  337. INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT
  338.     BX = 0005h
  339.     AX = delay time in clock ticks
  340.     ES:SI -> Event Control Block (see BX=0003h)
  341. Note:    this function is supported by Advanced NetWare 1.02+
  342. SeeAlso: BX=0006h,BX=0007h,BX=0008h
  343. --------N-7A----BX0006-----------------------
  344. INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT
  345.     BX = 0006h
  346.     ES:SI -> Event Control Block (see BX=0003h)
  347. Return: AL = return code (see #3071)
  348. Notes:    cannot cancel packets which the node's driver has already sent
  349.     this function is supported by Advanced NetWare 1.02+
  350. SeeAlso: BX=0005h
  351.  
  352. (Table 3071)
  353. Values for IPX return code:
  354.  00h    success
  355.  F9h    event in use
  356.  FCh    event cancelled
  357.  FFh    unsuccessful, event not in use, or unrecognized ECB flag
  358. --------N-7A----BX0007-----------------------
  359. INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT
  360.     BX = 0007h
  361.     AX = delay time
  362.     ES:SI -> Event Control Block (see BX=0003h)
  363. Note:    this function is supported by Advanced NetWare 1.02+
  364. SeeAlso: BX=0006h
  365. --------N-7A----BX0008-----------------------
  366. INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER
  367.     BX = 0008h
  368. Return: AX = interval marker in clock ticks (big-endian???)
  369. Notes:    may be used to measure the time elapsed between two events, up to one
  370.       hour
  371.     this function is supported by Advanced NetWare 1.02+
  372. SeeAlso: BX=0005h
  373. --------N-7A----BX0009-----------------------
  374. INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS
  375.     BX = 0009h
  376.     ES:SI -> buffer for own internetwork address (see #3072)
  377. Return: ES:SI buffer filled
  378.     SI destroyed
  379. Note:    this function is supported by Advanced NetWare 1.02+
  380. SeeAlso: BX=0002h,BX=000Bh
  381.  
  382. Format of IPX internetwork address:
  383. Offset    Size    Description    (Table 3072)
  384.  00h  4 BYTEs    (big-endian) network number
  385.  04h  6 BYTEs    (big-endian) node number within network
  386. --------N-7A----BX000A-----------------------
  387. INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL
  388.     BX = 000Ah
  389. Desc:    this call indicates that the application is idle and permits the IPX
  390.       driver to do some work
  391. Note:    this function is supported by Advanced NetWare 1.02+
  392. SeeAlso: INT 15/AX=1000h,INT 21/AH=89h,INT 2F/AX=1680h
  393. --------N-7A----BX000B-----------------------
  394. INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET
  395.     BX = 000Bh
  396.     ES:SI -> internetwork address (see #3073)
  397. Return: nothing
  398. Notes:    this function permits the network software on the remote machine to
  399.       remove any virtual connection with the calling machine
  400.     only use in point-to-point networks
  401.     should never be called from within an Event Service Routine
  402.     this function is supported by Advanced NetWare 1.02+
  403. SeeAlso: BX=0002h,BX=0009h
  404.  
  405. Format of IPX internetwork address:
  406. Offset    Size    Description    (Table 3073)
  407.  00h  4 BYTEs    (big-endian) destination network
  408.  04h  6 BYTEs    (big-endian) destination node
  409.  0Ah  2 BYTEs    (big-endian) destination socket
  410. --------N-7A----BX000C-----------------------
  411. INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS
  412.     BX = 000Ch
  413.     CX:DX = global network address (see INT 7A/BX=0002h)
  414.     ES:DI -> "OSINCRITICALSECTION" flag
  415.     DS:SI -> current mode for socket
  416. Note:    the address cannot be changed once it has been initialized
  417. SeeAlso: INT 7A/BX=0024h
  418. --------N-7A----BX000D-----------------------
  419. INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE
  420.     BX = 000Dh
  421. Return: AX = maximum packet size
  422.     CX = retry count
  423. SeeAlso: BX=001Ah
  424. --------N-7A----BX000E-----------------------
  425. INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS
  426.     BX = 000Eh
  427. Return: nothing
  428. Notes:    this function terminates all sockets opened with the current mode; this
  429.       may be intended for future enhancements as the socket mode never
  430.       changes in v2.15
  431.     called by the NetWare shell if a program terminates
  432. --------N-7A----BX000F-----------------------
  433. INT 7A - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET
  434.     BX = 000Fh
  435.     ES:SI -> Event Control Block (see BX=0003h)
  436. Note:    nearly identical to function 0003h, but does not copy address into
  437.       the first fragment, and bypasses normal error checking
  438. SeeAlso: BX=0003h
  439. --------N-7A----BX0010-----------------------
  440. INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK
  441.     BX = 0010h
  442.     AL = 00h
  443. Return: AL = status
  444.         00h if SPX not installed
  445.         F0h if IPX not installed
  446.         FFh if SPX loaded
  447.         BH = SPX major version
  448.         BL = SPX minor version
  449.         CX = maximum SPX connections
  450.         DX = SPX connections available
  451. Notes:    this function is supported by Advanced NetWare 2.1+
  452.     this interrupt is used for IPX/SPX access in NetWare versions through
  453.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  454.       entry point even though INT 7A still exists.    For both INT 7A and
  455.       the FAR entry point, BX contains the function number
  456.     IPX is sometimes called internally with BX bit 15 set, which causes the
  457.       entry point handler to bypass some checks and an optional call to
  458.       the IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h
  459.       (see #2204)
  460. SeeAlso: BX=0015h
  461. --------N-7A----BX0011-----------------------
  462. INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION
  463.     BX = 0011h
  464.     AL = retry count
  465.     AH = watchdog flag
  466.     ES:SI -> Event Control Block (see #3059 at BX=0003h)
  467. Return: AL = status (00h,EFh,FDh,FFh) (see #3074)
  468.     DX = assigned connection ID number
  469. Desc:    attempt to establish a connection with a listening socket
  470. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  471.       that NetWare can perform its internal packet exchanges
  472.     the first fragment should start with a SPX header (see #3075).    Fill
  473.       in all destination addresses.
  474.     this function is supported by Advanced NetWare 2.1+
  475. SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h,BX=0015h
  476.  
  477. (Table 3074)
  478. Values for SPX function status:
  479.  00h    attempting to contact destination socket
  480.  EEh    no such connection
  481.  EFh    local connection table full
  482.  FDh    buffer size not 42 or fragment count not 1
  483.  FFh    sending socket not open
  484.  
  485. Format of SPX header:
  486. Offset    Size    Description    (Table 3075)
  487.  00h    WORD    (big-endian) checksum
  488.  02h    WORD    (big-endian) length in bytes of total packet
  489.  04h    BYTE    transport control
  490.  05h    BYTE    packet type (see #3065 at INT 7A/BX=0003h)
  491.  06h 10 BYTEs    destination internet address
  492.  10h    WORD    (big-endian) destination socket
  493.  12h 10 BYTEs    source internet address
  494.  1Ch    WORD    (big-endian) source socket
  495.  1Eh    BYTE    connection control (see #3076)
  496.  1Fh    BYTE    datastream type
  497.         FEh terminate connection request packet
  498.         FFh terminate connection acknowledgement packet
  499.         other user-defined, ignored by SPX
  500.  20h    WORD    (big-endian) source connection ID
  501.  22h    WORD    (big-endian) destination connection ID
  502.  24h    WORD    (big-endian) sequence number
  503.  26h    WORD    (big-endian) acknowledge number
  504.  28h    WORD    (big-endian) allocation number
  505. SeeAlso: #3064
  506.  
  507. Bitfields for SPX connection control:
  508. Bit(s)    Description    (Table 3076)
  509.  3-0    unused???
  510.  4    end of message
  511.  5    reserved
  512.  6    acknowledgement required
  513.  7    system packet
  514. --------N-7A----BX0012-----------------------
  515. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION
  516.     BX = 0012h
  517.     AH = watchdog flag (00h disabled, 01h enabled)
  518.     AL = retry count (00h = default)
  519.     ES:SI -> Event Control Block (see #3059 at BX=0003h)
  520. Return: nothing
  521. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  522.       that NetWare can perform its internal packet exchanges
  523.     this function is supported by Advanced NetWare 2.1+
  524. SeeAlso: BX=0011h,BX=0013h,BX=0014h
  525. --------N-7A----BX0013-----------------------
  526. INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION
  527.     BX = 0013h
  528.     DX = connection ID to terminate
  529.     ES:SI -> Event Control Block (see #3059 at BX=0003h)
  530. Note:    this function is supported by Advanced NetWare 2.1+
  531. SeeAlso: BX=0011h,BX=0012h,BX=0014h
  532. --------N-7A----BX0014-----------------------
  533. INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION
  534.     BX = 0014h
  535.     DX = connection ID to terminate
  536. Return: nothing
  537. Notes:    this function is supported by Advanced NetWare 2.1+
  538.     this function does not tell the other side that the connection has been
  539.       terminated
  540.     also aborts any outstanding Establish Connection, Terminate Connection,
  541.       and Send Sequenced Packet commands
  542. SeeAlso: BX=0011h,BX=0013h
  543. --------N-7A----BX0015-----------------------
  544. INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS
  545.     BX = 0015h
  546.     DX = connection ID
  547.     ES:SI -> status buffer (see #3077)
  548. Return: AL = return code (00h,EEh) (see also #3074)
  549.         00h connection still valid
  550.         ES:SI -> status buffer filled
  551. Note:    this function is supported by Advanced NetWare 2.1+
  552. SeeAlso: BX=0010h,BX=0011h
  553.  
  554. Format of SPX status buffer:
  555. Offset    Size    Description    (Table 3077)
  556.  00h    BYTE    connection state
  557.         01h waiting to establish connection
  558.         02h starting (attempting to create connection)
  559.         03h connection established
  560.         04h terminating
  561.  01h    BYTE    watchdog flag
  562.         bit 0: used internally by SPX
  563.         bit 1: SPX watchdog is monitoring connection
  564.         bits 2-7 used internally by SPX
  565.  02h    WORD    (big-endian) source connection ID
  566.  04h    WORD    (big-endian) destination connection ID
  567.  06h    WORD    (big-endian) sequence number of next packet sent
  568.  08h    WORD    (big-endian) acknowledge number, expected sequence number of
  569.           next received packet
  570.  0Ah    WORD    (big-endian) maximum sequence number remote SPX may send
  571.           without ACK from local SPX
  572.  0Ch    WORD    (big-endian) remote acknowledge number, next sequence number
  573.           remote SPX expects to receive
  574.  0Eh    WORD    (big-endian) remote allocation number, maximum sequence number
  575.           local SPX may send
  576.  10h    WORD    (big-endian) connection socket
  577.  12h  6 BYTEs    immediate node address--bridge on local network to destination
  578.  18h 10 BYTEs    destination internetwork address (see #3073 at INT 7A/BX=000Bh)
  579.  22h    WORD    (big-endian) retransmit count
  580.  24h    WORD    (big-endian) estimated roundtrip delay
  581.  26h    WORD    (big-endian) retransmitted packets
  582.  28h    WORD    (big-endian) suppressed packets
  583.  2Ah 12 BYTEs    ??? (v2.15)
  584. --------N-7A----BX0016-----------------------
  585. INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET
  586.     BX = 0016h
  587.     DX = connection ID
  588.     ES:SI -> Event Control Block (see BX=0003h)
  589. Notes:    this function is supported by Advanced NetWare 2.1+
  590.     CX may need to be 0001h ???
  591. SeeAlso: BX=0011h,BX=0017h
  592. --------N-7A----BX0017-----------------------
  593. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET
  594.     BX = 0017h
  595.     DX = connection ID (unused in v2.15)
  596.     ES:SI -> Event Control Block (see BX=0003h)
  597. Notes:    this function is supported by Advanced NetWare 2.1+
  598.     CX may need to be 0001h ???
  599. SeeAlso: BX=0011h,BX=0016h
  600. --------N-7A----BX0018-----------------------
  601. INT 7A U - Novell NetWare - IPX Driver - internal - ADD DIAGNOSTIC ELEMENT
  602.     BX = 0018h
  603.     ES:SI -> diagnostic element (see #3078) to be added to Diagnostic Queue
  604. Note:    this function is supported on file servers only under v2.15; v3.02 also
  605.       supports it on workstations
  606. SeeAlso: BX=0019h
  607.  
  608. Format of IPX diagnostic element:
  609. Offset    Size    Description    (Table 3078)
  610.  00h    DWORD    pointer to next diagnostic element
  611.  04h    DWORD    pointer to function for ???
  612.  08h    DWORD    pointer to function for ???
  613. --------N-7A----BX0019-----------------------
  614. INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT
  615.     BX = 0019h
  616.     ES:SI -> diagnostic element (see BX=0018h) to be removed
  617. Note:    this function is supported on file servers only under v2.15; v3.02 also
  618.       supports it on workstations
  619. SeeAlso: BX=0018h
  620. --------N-7A----BX001A-----------------------
  621. INT 7A - Novell NetWare - IPX Driver - GET DRIVER MAXIMUM PACKET SIZE
  622.     BX = 001Ah
  623. Return: AX = maximum packet size with preamble (at least 576 bytes)
  624.     CX = IPX retry count
  625.     DS,FLAGS preserved
  626. SeeAlso: BX=000Dh
  627. --------N-7A----BX001B-----------------------
  628. INT 7A U - Novell NetWare - IPX Driver - INTERNAL
  629.     BX = 001Bh
  630.     ???
  631. Return: ???
  632. Notes:    this function is supported on file servers only under v2.15; v3.02 also
  633.       supports it on workstations
  634.     used by NetWare Access Server, which may call INT 15/AX=1117h with
  635.       BX=0000h in some cases (it uses a modified DESQview)
  636. --------N-7A----BX001C-----------------------
  637. INT 7A U - Novell NetWare - NetWare Access Server - GET ???
  638.     BX = 001Ch
  639. Return: AX = length of ???
  640.     ES:BX -> ???
  641. Notes:    these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  642. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Dh,INT 7A/BX=001Eh
  643. --------N-7A----BX001D-----------------------
  644. INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB AND SOCKET
  645.     BX = 001Dh
  646. Return: DX = socket number chosen by IPX
  647.     ES:SI -> ECB in IPX's code segment (will be listening)
  648.     BX corrupted
  649. Notes:    these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  650. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Ch,INT 7A/BX=001Eh
  651. --------N-7A----BX001E-----------------------
  652. INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB
  653.     BX = 001Eh
  654. Return: ES:SI -> ECB
  655.     BX corrupted
  656. Notes:    these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  657. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Ch,INT 7A/BX=001Dh
  658. --------N-7A----BX001F-----------------------
  659. INT 7A - Novell NetWare - IPXODI v2.12+ - GET IPX INFORMATION
  660.     BX = 001Fh
  661.     DX = 0000h
  662. Return: AX = ???
  663.     BX:CX -> ??? entry point (see #3079) (undocumented)
  664.     DX = feature flags
  665.         bit 0: IPXODI rather than dedicated IPX
  666.         bit 1: checksumming functions 0020h-0022h supported
  667.     ES:SI -> array of words containing used socket number (undocumented);
  668.         0000h ends array
  669.     all other registers except DS and FLAGS may be destroyed
  670. Note:    IPXODI v2.12 is distributed as part of the Personal NetWare system
  671.       bundled with Novell DOS 7
  672. SeeAlso: BX=0020h,INT 2F/AX=7A2Fh
  673.  
  674. (Table 3079)
  675. Call IPXODI entry point with:
  676.     ES:SI -> ECB??? (offset 24h is far pointer to ??? data)
  677. --------N-7A----BX0020-----------------------
  678. INT 7A - Novell NetWare - IPXODI v2.12+ - SEND WITH CHECKSUM
  679.     BX = 0020h
  680.     ES:SI -> ECB (see #3059 at INT 7A/BX=0003h)
  681. Return: DS,FLAGS preserved
  682.     BX,BP corrupted (documented as potentially destroying all other regs)
  683. Desc:    generate a checksum for the packet data and store it in the IPX
  684.       checksum field before transmitting the packet
  685. SeeAlso: BX=001Fh,BX=0021h,BX=0022h,INT 2F/AX=7A2Fh
  686. --------N-7A----BX0021-----------------------
  687. INT 7A - Novell NetWare - IPXODI v2.12+ - IPX GENERATE CHECKSUM
  688.     BX = 0021h
  689.     ES:SI -> ECB data (see #3059 at INT 7A/BX=0003h)
  690. Return: ES,DS,SI preserved
  691.     BX,BP corrupted, all other registers potentially destroyed
  692. Notes:    the checksum and TransportControl fields of the IPX packet are updated
  693.     this function enables interrupts and is fully reentrant
  694. SeeAlso: BX=001Fh,BX=0020h,BX=0022h,INT 2F/AX=7A2Fh
  695. --------N-7A----BX0022-----------------------
  696. INT 7A - Novell NetWare - IPXODI v2.12+ - IPX VERIFY CHECKSUM
  697.     BX = 0022h
  698.     ES:SI -> ECB data (see #3059 at INT 7A/BX=0003h)
  699. Return: AX = status (0000h checksum matches)
  700.     DS,ES,SI preserved
  701.     BX,BP corrupted, all other registers potentially destroyed
  702. Note:    this function enables interrupts and is fully reentrant
  703. SeeAlso: BX=001Fh,BX=0020h,BX=0021h,INT 2F/AX=7A2Fh
  704. --------N-7A----BX0023-----------------------
  705. INT 7A - Novell NetWare - IPXODI v2.12+ - OPEN LOOK-AHEAD SOCKET
  706.     BX = 0023h
  707.     DX = socket number (0000h for dynamic allocation)
  708.     ES:SI -> Look Ahead handler (see #3080)
  709.     BP = desired lookahead size (0000h-0080h)
  710. Return: AL = status
  711.         00h successful
  712.         DX = assigned socket number (big-endian)
  713.         FEh maximum number of sockets already open
  714.         FFh specific socket already opened by another application
  715.     DS,FLAGS preserved
  716.     all other registers may be destroyed
  717. Notes:    the socket will always be long-lived, and must thus be explicitly
  718.       closed with INT 7A/BX=0001h before the Look Ahead handler code is
  719.       removed from memory (i.e. the program terminates)
  720.     this function is only supported if INT 2F/AX=7A00h returns ES:BX
  721.       pointing at an IPX version greater than 3.30
  722.     the desired lookahead size is the smallest-size packet (including IPX
  723.       header) that should be passed to the lookahead handler when it
  724.       arrives
  725. SeeAlso: INT 7A/BX=0000h,INT 7A/BX=0001h
  726.  
  727. (Table 3080)
  728. Call IPX Look-Ahead handler with:
  729.     AX = packet's destination socket
  730.     DS:SI -> look-ahead structure (see #2280 at INT 2F/AX=C000h"LSL")
  731.     DF clear
  732.     interrupt disabled (must remain disabled)
  733. Return: AX = packet use
  734.         0000h application want packet
  735.         ES:SI -> ODI ECB (see #2281 at INT 2F/AX=C000h"LSL")
  736.         8001h application does not want packet
  737.     ZF set if AX=0000h
  738.     DS,DI,BP,SS,SP preserved
  739.     interrupts disabled
  740. --------N-7A----BX0024-----------------------
  741. INT 7A U - Novell NetWare - IPXODI v2.20+ - SET INTERNETWORK ADDRESS
  742.     BX = 0024h
  743.     ES:SI -> buffer containing internetwork address (see #3073)
  744. Return: BX,CX,SI,DI,ES destroyed
  745. Note:    this function differs from INT 7A/BX=000Ch in that it unconditionally
  746.       sets the address
  747. SeeAlso: INT 7A/BX=000Ch
  748. --------A-7A0001-----------------------------
  749. INT 7A R - AutoCAD Device Interface - DISPLAY - INITIALIZE (INIT1)
  750.     AX = 0001h
  751.     BX = configuration
  752.     CX = interface level (0001h)
  753. Return: AX = status
  754.         0000h initialization failed
  755.         0001h pre-v4.0 driver initialized successfully
  756.         0003h post-v3.1 driver initialized successfully (driver truncates
  757.           excessivly long packets)
  758.     BX = width of graphics area in pixels, or 0000h if using packet
  759.           communication
  760.     DX:CX -> packet-mode entry point (see #3081)
  761. SeeAlso: AX=0001h,AX=0200h,AX=07D0h,INT 61/AX=0007h"OPTIMA",INT 78"AutoCAD"
  762. SeeAlso: INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD",INT 7C"AutoShade"
  763.  
  764. (Table 3081)
  765. Call packet-mode entry point with:
  766. STACK:    DWORD    pointer to request packet (see #3082)
  767.     WORD    length of packet
  768.  
  769. Format of request packet:
  770. Offset    Size    Description    (Table 3082)
  771.  00h    WORD    function number (00h-45h for Compaq VGADI41.EXE)
  772. --------A-7A0200BX0000-----------------------
  773. INT 7A R - AutoCAD Device Interface - RENDERING DEVICE - INITIALIZE (RDLINKUP)
  774.     AX = 0200h
  775.     BX = 0000h
  776.     CX = interface level (0001h)
  777. Return: BX = 0000h (driver uses packet communication)
  778.     DX:CX -> packet-mode entry point (see #3081)
  779. SeeAlso: AX=0001h"AutoCAD",INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD"
  780. --------I-7A04-------------------------------
  781. INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE
  782.     AH = 04h
  783.     ???
  784. Return: ???
  785. SeeAlso: AH=06h
  786. --------I-7A06-------------------------------
  787. INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE
  788.     AH = 06h
  789.     ???
  790. Return: ???
  791. SeeAlso: AH=04h
  792. ----------7A07D0-----------------------------
  793. INT 7A R - AutoCAD Device Interface - Compaq VGADI41.EXE - GET ENTRY POINT
  794.     AX = 07D0h
  795. Return: AX = ??? (0003h)
  796.     BX = 0000h
  797.     DX:CX -> ADI entry point (see AX=0001h)
  798. SeeAlso: AX=0001h
  799. --------I-7A09--BX8020-----------------------
  800. INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES
  801.     AH = 09h
  802.     BX = 8020h (synchronous request)
  803.     CX = 0000h
  804.     DX = ID of session manager (SESSMGR)
  805.     AL = service (see #3083)
  806.     ES:DI -> control block
  807. Return: ???
  808.  
  809. (Table 3083)
  810. Values for service:
  811.  01h    get session ID
  812.  02h    get session info
  813.  04h    dettach from session
  814.  05h    attach to session
  815.  06h    get list of windows available
  816.  07h    get environment of window
  817.  08h    get 'PIF' (program information file) info
  818.  0Ah    get base window ID
  819.  0Bh    get cursor info
  820. --------I-7A09--BX8020-----------------------
  821. INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES
  822.     AH = 09h
  823.     BX = 8020h (synchronous request)
  824.     CX = 0000h
  825.     DX = ID of keyboard manager
  826.     AL = service number (see #3084)
  827.     ES:DI -> control block
  828. Return: ???
  829.  
  830. (Table 3084)
  831. Values for 3270 Workstation Program keyboard service:
  832.  01h    connect to keyboard
  833.  02h    disconnect from keyboard
  834.  03h    read from keyboard
  835.  04h    send keystroke to session
  836.  05h    disable input
  837.  06h    enable input
  838.  07h    update status code
  839. --------I-7A09--BX8020-----------------------
  840. INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES
  841.     AH = 09h
  842.     BX = 8020h (synchronous request)
  843.     CX = 00FFh
  844.     DX = ID of window service controller (WSCTRL)
  845.     AL = service number (see #3085)
  846.     ES:DI -> control block
  847. Return: ???
  848.  
  849. (Table 3085)
  850. Values for 3270 Workstation Program window service:
  851.  01h    connect to WS control
  852.  02h    disconnect from WS control
  853.  03h    add a window
  854.  04h    change window's position on screen
  855.  05h    change window's size
  856.  06h    change window's color
  857.  07h    change window's position in the presentation space
  858.  08h    hide/unhide toggle
  859.  09h    enlarge/reduce toggle
  860.  0Ah    change screen background color
  861.  0Bh    get window's position on screen
  862.  0Ch    get window's size
  863.  0Dh    get window's color
  864.  0Eh    get window's position in the presentation space
  865.  0Fh    determine whether hidden
  866.  10h    determine whether enlarged
  867.  11h    get background color
  868.  12h    get window names
  869.  13h    delete all windows from profile
  870.  14h    pick active window
  871.  15h    redraw screen
  872.  16h    redraw window
  873.  17h    delete a window from profile
  874.  18h    get active window
  875.  19h    get active screen
  876.  1Ah    get window data
  877.  1Bh    change window data
  878.  1Ch    select active screen
  879. --------I-7A09--BX8020-----------------------
  880. INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES
  881.     AH = 09h
  882.     BX = 8020h
  883.     CX = 00FFh
  884.     DX = ID of PCPSM
  885.     AL = service
  886.         01h define presentation space
  887.         02h delete presentation space
  888.         03h display presentation space
  889.         04h position cursor in presentation space
  890.         05h change default presentation space
  891.     ES:DI -> control block
  892. Return: ???
  893. --------I-7A09--BX8020-----------------------
  894. INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION
  895.     AH = 09h
  896.     BX = 8020h
  897.     CX = 00FFh
  898.     DX = ID of 3270EML
  899.     AL = service
  900.         01h connect
  901.         02h disconnect
  902.     ES:DI -> control block
  903. Return: ???
  904. --------I-7A09--BX8020-----------------------
  905. INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA
  906.     AH = 09h
  907.     BX = 8020h
  908.     CX = 00FFh
  909.     DX = ID of OIAM
  910.     AL = service
  911.         01h read Operator Information Area
  912.         02h read OIA subset
  913.     ES:DI -> control block
  914. Return: ???
  915. Note: the OIA is the 25th line on the Host session
  916. --------I-7A09--BX8020-----------------------
  917. INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA
  918.     AH = 09h
  919.     BX = 8020h
  920.     CX = 00FFh
  921.     DX = ID of XLATE
  922.     AL = service
  923.         01h translate from host characters to ASCII and vice versa
  924.         (determined by control block byte 11)
  925.     ES:DI -> control block
  926. Return: ???
  927. --------I-7A09--BX8020-----------------------
  928. INT 7A - IBM 3270 Workstation Program API - COPY SERVICE
  929.     AH = 09h
  930.     BX = 8020h
  931.     CX = 00FFh
  932.     DX = ID of copy service
  933.     AL = service
  934.         01h copy string from one presentation space to another
  935.         02h copy block from one presentation space to another
  936.         03h connect to PC session for copy
  937.         04h disconnect PC session from copy
  938.     ES:DI -> control block
  939. Return: ???
  940. --------I-7A09--BX8020-----------------------
  941. INT 7A - IBM 3270 Workstation Program API - Multi-DOS
  942.     AH = 09h
  943.     BX = 8020h
  944.     CX = 00FFh
  945.     ES:DI -> control block
  946.     DX = ID of INDJQRY
  947.         get environment size
  948.        = ID of INDJASY
  949.         request DOS functions from workstation
  950.        = ID of MEMORY
  951.         AL = function
  952.             01h allocate memory
  953.             02h deallocate memory
  954.             03h modify allocated size
  955. Return: ???
  956. --------I-7A09-------------------------------
  957. INT 7A - IBM 3270 Workstation Program API - HOST SERVICES
  958.     AH = 09h
  959.     BX = request type (4000h async, 8028h synchronous)
  960.     CX = 0000h
  961.     DX = ID of MFIC
  962.     AL = service (see #3086)
  963.     ES:DI -> control block
  964.  
  965. (Table 3086)
  966. Values for 3270 Workstation Program host service:
  967.  01h    connect to host
  968.  02h    disconnect from host
  969.  03h    read DFT structured data from host
  970.  04h    write DFT structured data to host
  971.  05h    create a host buffer
  972. --------I-7A13-------------------------------
  973. INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE
  974.     AH = 13h
  975.     ???
  976. Return: ???
  977. ----------7A7A-------------------------------
  978. INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE
  979.     AH = 7Ah
  980.     ???
  981. Return: AX = status
  982.         0000h success
  983.         000Eh undefined function code
  984. Range:    unknown, selected by device driver commandline arguments
  985. --------I-7A81-------------------------------
  986. INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME
  987.     AH = 81h
  988.     ES:DI -> 8-char blank-padded gate name (see #3087)
  989. Return: DX = gate ID
  990.  
  991. (Table 3087)
  992. Values for 3270 Workstation Program gate name:
  993.  "SESSMGR "
  994.  "KEYBOARD"
  995.  "WSCTRL  "
  996.  "MFIC      "
  997.  "PCPSM      "
  998.  "3270EML "
  999.  "COPY      "
  1000.  "XLATE      "
  1001.  "OIAM      "
  1002.  "MEMORY  "
  1003.  "INDJQRY "
  1004.  "INDJASY "
  1005. --------I-7A83-------------------------------
  1006. INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS
  1007.     AH = 83h
  1008.     ???
  1009. Return: ???
  1010. --------I-7AFDCB-----------------------------
  1011. INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK
  1012.     AX = FDCBh
  1013. Return: DX:AX -> PCS/3270 signature block if loaded (see #3088)
  1014.  
  1015. Format of Personal Communications/3270 signature block:
  1016. Offset    Size    Description    (Table 3088)
  1017.  04h    WORD    PCS/3270 signature (5741h)
  1018.  06h    WORD    version (0501h = PCS/3270 v1.0)
  1019. --------I-7AFE01-----------------------------
  1020. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  1021.     AX = FE01h
  1022.     ???
  1023. Return: ???
  1024. SeeAlso: AX=FE02h
  1025. --------I-7AFE02-----------------------------
  1026. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  1027.     AX = FE02h
  1028.     ???
  1029. Return: ???
  1030. SeeAlso: AX=FE01h
  1031. --------I-7AFF01-----------------------------
  1032. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  1033.     AX = FF01h
  1034.     ES:DI -> API function handler routine
  1035. Return: CX = 1200h
  1036. SeeAlso: AX=FF02h,AX=FF03h
  1037. --------I-7AFF02-----------------------------
  1038. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION
  1039.     AX = FF02h
  1040. Return: CX = 1200h
  1041. SeeAlso: AX=FF01h
  1042. --------I-7AFF03-----------------------------
  1043. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  1044.     AX = FF03h
  1045.     ES:DI -> send/receive function handler routine
  1046. Return: CX = 1200h
  1047. SeeAlso: AX=FF01h
  1048. --------I-7AFF04-----------------------------
  1049. INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???
  1050.     AX = FF04h
  1051.     ES:DI -> ???
  1052. Return: CX = 1200h
  1053. --------f-7B---------------------------------
  1054. INT 7B - Btrieve API (single user)
  1055.     DS:DX -> 38-byte parameter record (see #3089)
  1056. Return: return code field set
  1057. Note:    Btrieve sets low byte of vector to 33h; this serves as the installation
  1058.       check
  1059. SeeAlso: INT 2F/AX=AB01h,INT 7F/AX=0200h
  1060.  
  1061. Format of Btrieve parameter record:
  1062. Offset    Size    Description    (Table 3089)
  1063.  00h    DWORD    pointer to data buffer
  1064.  04h    WORD    data buffer length
  1065.  06h    DWORD    pointer to 90-byte record containing positioning info
  1066.         (should be same for all calls for same file)
  1067.  0Ah    DWORD    pointer to 38-byte FCB info buffer
  1068.         (should be same for all calls for same file)
  1069.  0Eh    WORD    function code (see #3090)
  1070.  10h    DWORD    pointer to file name/key buffer
  1071.  14h    BYTE    key length
  1072.  15h    BYTE    key number
  1073.  16h    DWORD    pointer to status code (see #3091)
  1074.  1Ah    WORD    interface code (version specific)
  1075.         6176h version 5.10
  1076.  
  1077. (Table 3090)
  1078. Values for function code:
  1079.  00h    open
  1080.  01h    close
  1081.  02h    insert
  1082.  03h    update
  1083.  04h    delete
  1084.  05h    get_equal
  1085.  06h    get_next
  1086.  07h    get_prev
  1087.  08h    get_greater
  1088.  09h    get_gr_eql
  1089.  0Ah    get_less
  1090.  0Bh    get_less_eq
  1091.  0Ch    get_first
  1092.  0Dh    get_last
  1093.  0Eh    create
  1094.  0Fh    stat
  1095.  10h    extend
  1096.  11h    set_dir: set directory information
  1097.  12h    get_dir: get directory information
  1098.  13h    begin_trans
  1099.  14h    end_trans
  1100.  15h    abort_trans
  1101.  16h    get_pos: get record position number
  1102.  17h    get_direct: get data by sending record position
  1103.  18h    step_next
  1104.  19h    stop
  1105.  1Ah    version
  1106.  1Bh    unlock
  1107.  1Ch    reset
  1108.  1Dh    set owner
  1109.  1Eh    clear owner
  1110.  1Fh    create supplemental index
  1111.  20h    drop supplemental index
  1112.  21h    step first
  1113.  22h    step last
  1114.  23h    step previous
  1115.  24h    get next extended: get multiple records using a filter
  1116.  25h    get previous extended: get multiple records using a filter
  1117.  26h    step next extended: get multiple records using a filter
  1118.  27h    step previous extended: get multiple records using a filter
  1119.  28h    insert extended: insert one or more records
  1120.  31h    ???
  1121. Notes:    add 50 (32h) to any "get" operation to just return the key data
  1122.     add 100 (64h) for a single-record wait lock (automatically released
  1123.       on next get)
  1124.     add 200 (C8h) for a single-record nowait lock (nowait lock returns
  1125.       error 54h or 55h if record already locked)
  1126.     add 300 (12Ch) for a multiple-record wait lock (not released until
  1127.       unlock called)
  1128.     add 400 (190h) for a multiple-record nowait lock (nowait lock returns
  1129.       error 54h or 55h if record already locked)
  1130.  
  1131. (Table 3091)
  1132. Values for Btrieve status code:
  1133.  00h    successful
  1134.  01h    invalid operation
  1135.  02h    I/O error
  1136.  03h    file not open
  1137.  04h    key value not found
  1138.  05h    duplicate key value
  1139.  06h    invalid key number
  1140.  07h    different key number
  1141.  08h    invalid positioning
  1142.  09h    end of file
  1143.  0Ah    modifiable key value error
  1144.  0Bh    invalid file name
  1145.  0Ch    file not found
  1146.  0Dh    extended file error
  1147.  0Eh    pre-image open error
  1148.  0Fh    pre-image I/O error
  1149.  10h    expansion error
  1150.  11h    close error
  1151.  12h    disk full
  1152.  13h    unrecoverable error
  1153.  14h    record manager inactive
  1154.  15h    key buffer too short
  1155.  16h    data buffer length overrun
  1156.  17h    position block length
  1157.  18h    page size error
  1158.  19h    create I/O error
  1159.  1Ah    number of keys
  1160.  1Bh    invalid key position
  1161.  1Ch    invalid record length
  1162.  1Dh    invalid key length
  1163.  1Eh    not a Btrieve file
  1164.  1Fh    file already extended
  1165.  20h    extended I/O error
  1166.  22h    invalid extension name
  1167.  23h    directory error
  1168.  24h    transaction error
  1169.  25h    transaction is active
  1170.  26h    transaction control file I/O error
  1171.  27h    end/abort transaction error
  1172.  28h    transaction max files
  1173.  29h    operation not allowed
  1174.  2Ah    incomplete accelerated access
  1175.  2Bh    invalid record address
  1176.  2Ch    null key path
  1177.  2Dh    inconsistent key flags
  1178.  2Eh    access to file denied
  1179.  2Fh    maximum open files
  1180.  30h    invalid alternate sequence definition
  1181.  31h    key type error
  1182.  32h    owner already set
  1183.  33h    invalid owner
  1184.  34h    error writing cache
  1185.  35h    invalid interface
  1186.  36h    variable page error
  1187.  37h    autoincrement error
  1188.  38h    incomplete index
  1189.  39h    expanded memory error
  1190.  3Ah    compression buffer too short
  1191.  3Bh    file already exists
  1192.  3Ch    reject count reached
  1193.  3Dh    work space too small
  1194.  3Eh    incorrect descriptor
  1195.  3Fh    invalid extended insert
  1196.  40h    filter limit reached
  1197.  41h    incorrect field offset
  1198.  4Ah    automatic transaction abort
  1199.  4Dh    Btrieve engine busy or resource locked by another user
  1200.  4Eh    deadlock detected
  1201.  50h    conflict
  1202.  51h    lock error
  1203.  52h    lost position
  1204.  53h    read outside transaction
  1205.  54h    record in use
  1206.  55h    file in use
  1207.  56h    file table full
  1208.  57h    handle table full
  1209.  58h    incompatible open mode
  1210.  5Ah    redirected device table full
  1211.  5Bh    server error
  1212.  5Ch    transaction table full
  1213.  5Dh    incompatible lock type
  1214.  5Eh    permission error
  1215.  5Fh    session no longer valid
  1216.  60h    communications environment error
  1217.  61h    data message too small
  1218.  62h    internal transaction error
  1219. --------I-7B---------------------------------
  1220. INT 7B - Eicon Access API (3270/5250 gateways)
  1221. SeeAlso: INT 5C"NetBIOS"
  1222. --------E-7B---------------------------------
  1223. INT 7B - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ3
  1224. Notes:    this vector is overwritten when GO32 starts but is not restored by
  1225.       early versions of the extender
  1226.     the newest versions of GO32 dynamically allocate the vectors used
  1227.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  1228. SeeAlso: INT 0B,INT 10/AH=FFh"GO32",INT 7A"GO32",INT 7C"GO32"
  1229. --------A-7B---------------------------------
  1230. INT 7B CR - AutoCAD Device Interface - PRINTER/PLOTTER - SEND PLOTTING DATA
  1231.     AX = data length (0000h-7FFFh)
  1232.     CX:BX -> data to be plotted
  1233.     DX = vertical position of line on page
  1234. Return: nothing
  1235. Notes:    This interrupt is called by AutoCAD to perform its output
  1236.     A data length of 0000h indicates that a blank line is to be output
  1237. SeeAlso: AX=8001h,AX=8002h,INT 78"AutoCAD",INT 7A/AX=0001h"AutoCAD"
  1238. --------e-7B---------------------------------
  1239. INT 7B U - MCI Express v2.11+ - DRIVER.EXE - ???
  1240. Program: MCI Express is a front end to MCI Mail; DRIVER.EXE is its
  1241.       communication driver
  1242. ----------7B---------------------------------
  1243. INT 7B - Novell XQL - XQL PRIMITIVES MANAGER API
  1244.     DS:DX -> parameter block (see #3093)
  1245. Return: parameter block updated
  1246.  
  1247. (Table 3092)
  1248. Values for Novell XQL function number:
  1249.  00h    log in
  1250.  01h    log out
  1251.  02h    "tNewFcn"
  1252.  03h    "tFreeFcn"
  1253.  04h    "tMoveFldFcn"
  1254.  05h    "tFieldFcn"
  1255.  06h    "tDescribeFcn"
  1256.  07h    "tFetchFcn"
  1257.  08h    "tComputeFcn"
  1258.  09h    "tOrderFcn"
  1259.  0Ah    "tRestrictFcn"
  1260.  0Bh    "tJoinFcn"
  1261.  0Ch    "tInsertFcn"
  1262.  0Dh    "tUpdateFcn"
  1263.  0Eh    "tUpdallFcn"
  1264.  0Fh    "tRemoveFcn"
  1265.  10h    "tRemallFcn"
  1266.  11h    "tResetFcn"
  1267.  12h    "tTransFcn"
  1268.  13h    "tStatFcn"
  1269.  14h    "tDDCreFcn"
  1270.  15h    "tStoreFcn"
  1271.  16h    "tRecallFcn"
  1272.  17h    "tStopFcn"
  1273.  18h    "tDDFileFcn"
  1274.  19h    "tDDFieldFcn"
  1275.  1Ah    "tDDIndexFcn"
  1276.  1Bh    "tDDModFcn"
  1277.  1Ch    "tDDViewFcn"
  1278.  1Dh    "tDDDrpFcn"
  1279.  1Eh    "tDDPathFcn"
  1280.  1Fh    "tDDAttrFcn"
  1281.  20h    "tDDFcn"
  1282.  21h    "tSecurFcn"
  1283.  22h    "tUserFcn"
  1284.  23h    "tAccessFcn"
  1285.  24h    "tPswdFcn"
  1286.  25h    "tCharFcn"
  1287.  26h    "tVersionFcn"
  1288.  27h    "tCnvFcn"
  1289.  28h    "tValFcn"
  1290.  29h    "tMaskFcn"
  1291. SeeAlso: #3093
  1292.  
  1293. Format of XQL parameter block:
  1294. Offset    Size    Description    (Table 3093)
  1295.  00h  4 BYTEs    signature "XQLP"
  1296.  04h    WORD    function number (see #3092)
  1297.  06h    WORD    handle
  1298.  08h    WORD    status
  1299.  0Ah    WORD    session ID
  1300.  0Ch    var    data record (varies by function)
  1301. ---function 00h---
  1302.  0Ch    DWORD    -> user name
  1303.  10h    DWORD    -> password
  1304.  14h    DWORD    -> dictionary
  1305.  18h    DWORD    -> filepath
  1306.  1Ch    DWORD    -> machine name
  1307.  20h    WORD    process ID
  1308. ---function 01h---
  1309.  no additional fields???
  1310. ---function 02h---
  1311.  0Ch    DWORD    -> filename
  1312.  10h    DWORD    -> owner name
  1313.  14h    WORD    open mode
  1314. ---function 03h---
  1315.  no additional fields???
  1316. ---function 04h---
  1317.  0Ch    WORD    "frompos"
  1318.  0Eh    WORD    "topos"
  1319. ---function 05h---
  1320.  0Ch    WORD    subfunction
  1321.  0Eh    WORD    position
  1322.  10h    WORD    count
  1323.  12h    DWORD    -> field list
  1324. ---function 06h---
  1325.  0Ch    WORD    subfunction
  1326.  0Eh    WORD    length of description
  1327.  10h    WORD    position
  1328.  12h    WORD    count
  1329.  14h    DWORD    pointer to description list
  1330. ---function 07h---
  1331.  0Ch    WORD    data length
  1332.  0Eh    WORD    "op"
  1333.  10h    DWORD    "select"
  1334.  14h    DWORD    "reject"
  1335.  18h    DWORD    pointer to data buffer
  1336. ---function 08h---
  1337.  0Ch    DWORD    -> field name
  1338.  10h    WORD    field type
  1339.  12h    WORD    field size
  1340.  14h    WORD    "flddec"
  1341.  16h    WORD    "explen"
  1342.  18h    DWORD    pointer to "expbuf"
  1343. ---function 09h---
  1344.  0Ch    WORD    count
  1345.  0Eh    DWORD    -> field list
  1346. ---function 0Ah---
  1347.  0Ch    WORD    "newexp"
  1348.  0Eh    WORD    "explen"
  1349.  10h    DWORD    -> "expbuf"
  1350. ---function 0Bh---
  1351.  0Ch    DWORD    -> filename
  1352.  10h    DWORD    -> owner name
  1353.  14h    WORD    type of join
  1354.  16h    WORD    "pCount"
  1355.  18h    DWORD    -> "pNames"
  1356.  1Ch    WORD    "sCount"
  1357.  1Eh    DWORD    -> "sNames"
  1358. ---functions 0Ch, 0Dh, 0Fh---
  1359.  0Ch    WORD    file count
  1360.  0Eh    DWORD    -> file list
  1361.  12h    DWORD    count
  1362.  16h    DWORD    -> buffer
  1363. ---function 0Eh---
  1364.  0Ch    WORD    file count
  1365.  0Eh    DWORD    -> file list
  1366.  12h    WORD    "op"
  1367.  14h    DWORD    "select"
  1368.  18h    DWORD    "reject"
  1369.  1Ch    WORD    count
  1370.  1Eh    DWORD    -> "res"
  1371.  22h    DWORD    -> "comp"
  1372. ---function 10h---
  1373.  0Ch    WORD    file count
  1374.  0Eh    DWORD    -> file list
  1375.  12h    WORD    "op"
  1376.  14h    DWORD    "select"
  1377.  18h    DWORD    "reject"
  1378. ---function 11h---
  1379.  0Ch    DWORD    machine name
  1380. ---function 12h---
  1381.  0Ch    WORD    option
  1382. ---function 13h---
  1383.  0Ch    WORD    subfunction
  1384.  0Eh    WORD    length of buffer
  1385.  10h    DWORD    -> buffer
  1386. ---function 14h---
  1387.  0Ch    WORD    subfunction
  1388.  0Eh    DWORD    -> filename
  1389.  12h    WORD    "create"
  1390.  14h    DWORD    -> pathname
  1391.  18h    DWORD    -> owner name
  1392.  1Ch    WORD    owner access restrictions
  1393.  1Eh    WORD    number of fields
  1394.  20h    DWORD    -> field list
  1395.  24h    WORD    number of keys
  1396.  28h    DWORD    -> key list
  1397.  2Ch    WORD    "buflen"
  1398.  2Eh    DWORD    -> create parameters
  1399. ---function 15h---
  1400.  0Ch    DWORD    -> "StoreName"
  1401.  10h    WORD    length of buffer
  1402.  12h    DWORD    -> buffer
  1403. ---function 16h---
  1404.  0Ch    DWORD    -> "RecallName"
  1405.  10h    WORD    owner number
  1406.  12h    DWORD    -> owner list
  1407.  16h    WORD    open mode
  1408.  18h    WORD    length of buffer
  1409.  1Ah    DWORD    -> buffer
  1410. ---function 17h---
  1411.  no additional fields???
  1412. ---function 18h---
  1413.  0Ch    WORD    "rtype"
  1414.  0Eh    WORD    count
  1415.  10h    DWORD    -> "filebuf"
  1416.  14h    WORD    length of following buffer
  1417.  16h    DWORD    -> output buffer
  1418. ---functions 19h, 1Ah---
  1419.  0Ch    WORD    "rtype"
  1420.  0Eh    WORD    count
  1421.  10h    DWORD    -> field buffer
  1422.  14h    WORD    length of following buffer
  1423.  16h    DWORD    -> output buffer
  1424. ---function 1Bh---
  1425.  0Ch    WORD    subfunction
  1426.  0Eh    DWORD    -> filename
  1427.  12h    WORD    "create"
  1428.  14h    DWORD    -> pathname
  1429.  18h    DWORD    -> owner name
  1430.  1Ch    WORD    owner access restrictions
  1431.  1Eh    WORD    field count
  1432.  20h    DWORD    -> field list
  1433.  24h    WORD    number of keys
  1434.  26h    DWORD    -> list of keys
  1435. ---function 1Ch---
  1436.  0Ch    WORD    count
  1437.  0Eh    DWORD    -> view name
  1438.  12h    WORD    length of following buffer
  1439.  14h    DWORD    -> output buffer
  1440. ---function 1Dh---
  1441.  0Ch    DWORD    -> filename
  1442.  10h    WORD    file type
  1443.  12h    WORD    "deletepath"
  1444. ---function 1Eh---
  1445.  0Ch    WORD    "dirtype"
  1446.  0Eh    DWORD    -> pathname
  1447. ---function 1Fh---
  1448.  0Ch    WORD    function
  1449.  0Eh    DWORD    -> field name
  1450.  12h    WORD    attribute
  1451.  14h    WORD    size of buffer
  1452.  16h    DWORD    -> buffer for attributes
  1453. ---function 20h---
  1454.  0Ch    DWORD    -> directory path
  1455.  10h    WORD    function
  1456. ---function 21h---
  1457.  0Ch    DWORD    -> master password
  1458.  10h    WORD    "securityflag"
  1459. ---function 22h---
  1460.  0Ch    DWORD    -> master password
  1461.  10h    WORD    function (add/modify/remove)
  1462.  12h    DWORD    -> user name
  1463.  16h    DWORD    -> password
  1464.  1Ah    WORD    global rights
  1465.  1Ch    WORD    count
  1466.  1Eh    WORD    length of following buffer
  1467.  20h    DWORD    -> "userbuf"
  1468. ---function 23h---
  1469.  0Ch    DWORD    -> master password
  1470.  10h    DWORD    -> user name
  1471.  14h    WORD    function (allow/deny/getrights)
  1472.  16h    WORD    rights
  1473.  18h    DWORD    -> filename
  1474.  1Ch    WORD    number of field names in following buffer
  1475.  1Eh    DWORD    -> field names
  1476.  22h    WORD    maximum buffer length
  1477.  24h    DWORD    -> output buffer
  1478. ---function 24h---
  1479.  0Ch    DWORD    -> user name
  1480.  10h    DWORD    -> password
  1481. ---function 25h---
  1482.  0Ch    WORD    "charFcn"
  1483.  0Eh    WORD    "charType"
  1484.  10h    WORD    "charValue"
  1485. ---function 26h---
  1486.  0Ch    DWORD    -> buffer
  1487. ---function 27h---
  1488.  0Ch    WORD    option
  1489.  0Eh    WORD    type
  1490.  10h    WORD    size
  1491.  12h    WORD    "dec"
  1492.  14h    WORD    "dsize"
  1493.  16h    DWORD    -> value
  1494.  1Ah    DWORD    -> "retval"
  1495.  1Eh    DWORD    -> mask
  1496.  22h    WORD    "justify"
  1497. ---function 28h---
  1498.  0Ch    DWORD    -> field name
  1499.  10h    WORD    length of buffer
  1500.  12h    DWORD    -> buffer for data
  1501. ---function 29h---
  1502.  0Ch    WORD    option
  1503.  0Eh    WORD    type
  1504.  10h    WORD    size
  1505.  12h    WORD    "dec"
  1506.  14h    WORD    length of mask
  1507.  16h    DWORD    -> mask
  1508. --------A-7B8001-----------------------------
  1509. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - BEGIN PLOT
  1510.     AX = 8001h
  1511.     BX = file level
  1512.         0000h binary file
  1513.         0001h CAD/camera image file
  1514.         0002h installed ADI driver
  1515.     CX = horizontal size in pixels
  1516.     DX = vertical size in pixels
  1517. Return: AX = status (0000h initialization failed, 0001h init successful)
  1518.     BX = allowed output format
  1519.         0000h monochrome
  1520.         0001h color (4 bits per pixel)
  1521. SeeAlso: AX=8002h,AX=8003h,INT 7B"AutoCAD",INT 7C"AutoShade"
  1522. --------A-7B8002-----------------------------
  1523. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - END PLOT
  1524.     AX = 8002h
  1525. SeeAlso: AX=8001h,AX=8003h
  1526. --------A-7B8003-----------------------------
  1527. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - ABORT PLOT
  1528.     AX = 8003h
  1529. SeeAlso: AX=8001h,AX=8002h
  1530. --------r-7C---------------------------------
  1531. INT 7C U - IBM REXX88PC command language
  1532.     ???
  1533. --------E-7C---------------------------------
  1534. INT 7C - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ4
  1535. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  1536.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  1537. Notes:    this vector is overwritten when GO32 starts but is not restored by
  1538.       early versions of the extender
  1539.     the newest versions of GO32 dynamically allocate the vectors used
  1540.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  1541. SeeAlso: INT 0C,INT 7B"GO32",INT 7D"GO32"
  1542. --------P-7C---------------------------------
  1543. INT 7C - PRINDIR v8.02-8.xx - API
  1544.     AH = function
  1545.        00h set output to Invisible mode
  1546.        01h set output to LPT1
  1547.        02h set output to LPT2
  1548.        03h set output to LPT3
  1549.        04h set output to COM1
  1550.        05h set output to COM2
  1551.        06h set output to COM3
  1552.        07h set output to COM4
  1553.        08h set output to screen
  1554.        09h set output to file
  1555.        0Ah change file path
  1556.            ES:DI -> new path
  1557.            CX = length of path (max 41, but not range-checked)
  1558.        0Bh change file name
  1559.            ES:DI -> new filename
  1560.            CX = length of new name (max 41, but not range-checked)
  1561.        0Ch set redirected device
  1562.         (01h = LPT1 ... 03h = LPT3, 04h = COM1 ... 07h = COM4)
  1563.        0Dh force buffer dump
  1564.        0Eh set display color
  1565.            AL = new color attribute (see #0013 at INT 10/AH=08h)
  1566.        0Fh set popup hotkey
  1567.            AL = hotkey scancode
  1568.        10h toggle byte display
  1569.            AL = new state (00h off, 01h on)
  1570.        11h change buffer flush delay
  1571.            AL = timer ticks before flush
  1572. Return: AX = status
  1573.         0000h successful
  1574.         0001h invalid function or nothing in buffer to be dumped
  1575.         (documented as "nonzero = error")
  1576. Program: PRINDIR is a shareware printer-redirection program by J.M. Allen
  1577.       Creations
  1578. Notes:    the installation check consists of testing for the ASCIZ signature
  1579.       "PRINDIR N.NN" (where N.NN is the version number) two bytes beyond
  1580.       the start of the interrupt handler
  1581.     prior versions of PRINDIR used INT 7A instead of INT 7C
  1582. SeeAlso: INT 7A"PRINDIR",INT 2F/AX=7F00h"PRINDIR"
  1583. Index:    hotkeys;PRINDIR
  1584. --------A-7C---------------------------------
  1585. INT 7C - AutoShade v2 - RENDERING HARDCOPY DRIVER
  1586. Note:    this is the default interrupt vector for rendering hardcopy drivers
  1587.       instead of INT 7A used by AutoCAD drivers
  1588. SeeAlso: INT 7A/AX=0001h"AutoCAD"
  1589. --------N-7C---------------------------------
  1590. INT 7C - SK-UPPS/SK-PASSPORT Data Link Interface (DLI) API
  1591. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  1592.       which provides an API on top of it Data Link Interface, allowing the
  1593.       use of any of several network transport layers; this product is
  1594.       called SK-PASSPORT in the USA.
  1595. Notes:    The installation check consists of testing for the ASCII signature
  1596.       string "UPPS_DLI" immediately preceding the interrupt handler.
  1597.     To find the service interrupt being used by the driver, an application
  1598.       should scan through the interrupt table until it finds an interrupt
  1599.       vector with the "UPPS_DLI" string.
  1600.     There may be more than one DLI loaded, each having its own service
  1601.       interrupt.
  1602. SeeAlso: AX=0000h,AX=0002h,AX=000Fh
  1603. Index:    installation check;SK-UPPS
  1604. --------N-7C0000-----------------------------
  1605. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER VERSION
  1606.     AX = 0000h
  1607. Return: AH = major DLI version
  1608.     AL = minor DLI version
  1609.     DX = OEM signature (see #3094)
  1610.     CL = DLI 2.8+ topology: 1=Ethernet, 2=FDDI, 3=Token-Ring
  1611. SeeAlso: AX=0002h,AX=000Bh,AX=000Dh,AX=000Eh
  1612.  
  1613. (Table 3094)
  1614. Values for SK-UPPS Data Link Interface OEM signature (defined by SK):
  1615.  0001h        experimental
  1616.  3343h    ('3C')    3COM
  1617.  4942h    ('IB')    IBM
  1618.  4943h    ('IC')    Intellicom
  1619.  494Eh    ('IN')    Intel
  1620.  4B4Fh    ('KO')    Kodiak
  1621.  4D41h    ('MA')    Madge
  1622.  4E45h    ('NE')    Novell
  1623.  4F43h    ('OC')    Olicom
  1624.  5349h    ('SI')    Siemens
  1625.  534Bh    ('SK')    Schneider & Koch (SysKonnect)
  1626.  5744h    ('WD')    Western Digital
  1627. --------N-7C0001-----------------------------
  1628. INT 7C - SK-UPPS Data Link Interface API - DOWN DRIVER
  1629.     AX = 0001h
  1630. Return: AX = completion code (see #3095)
  1631. Note:    the DLI will refuse to unload if there are any protocols
  1632.       (see AX=0007h) or clients (see AX=0010h) active.
  1633. Index:    uninstall;SK-UPPS Data Link Interface
  1634.  
  1635. (Table 3095)
  1636. Values for SK-UPPS completion code:
  1637.  0000h    SUCCESS
  1638.  0005h    INVALID_MULTICAST
  1639.  0006h    BUFFER_TOO_SMALL
  1640.  0007h    NO_BUFFERS_LEFT
  1641.  0008h    NO_RESOURCES_LEFT
  1642.  000Bh    ILLEGAL_PROTOCOL_ID
  1643.  000Ch    PROTOCOL_IN_USE
  1644.  000Dh    NO_MULTICAST_ADDRESS
  1645.  000Fh    PROTOCOLS_ACTIVE
  1646.  0010h    CLIENTS_ACTIVE
  1647.  001Bh    INVALID_MODE
  1648.  001Ch    MODE_NOT_SUPPORTED
  1649.  FFFFh    UNKNOWN_SERVICE
  1650. --------N-7C0002-----------------------------
  1651. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATUS
  1652.     AX = 0002h
  1653.     ES:DI -> Status Information Block (SIB) (see #3107)
  1654. Return: AX = completion code (see #3095)
  1655. Note:    GET DRIVER INFO (AX=000Eh) should be used instead.
  1656. SeeAlso: AX=0000h,AX=000Bh,AX=000Dh,AX=000Eh
  1657. --------N-7C0003-----------------------------
  1658. INT 7C - SK-UPPS Data Link Interface API - CHANGE DRIVER ADDRESS
  1659.     AX = 0003h
  1660.     ES:DI -> new node address (6 bytes)
  1661. Return: AX = completion code (see #3095)
  1662. Note:    the DLI will refuse to change the address if any protocols
  1663.       (see AX=0007h) are active
  1664. SeeAlso: AX=0001h,AX=000Eh
  1665. --------N-7C0004-----------------------------
  1666. INT 7C - SK-UPPS Data Link Interface API - REQUEST BUFFER
  1667.     AX = 0004h
  1668.     DX = protocol ID (see AX=0007h,#3098)
  1669. Return: AX = completion code (see also #3095)
  1670.         0000h successful
  1671.         ES:BX -> Memory Buffer (Mbuf) (see #3096)
  1672. Note:    if the DLI has no free Mbufs, it will set an internal flag for the
  1673.       protocol and later call the protocol's Event Upcall with
  1674.       EV_BUFFER_AVAILABLE (see #3102,#3103) as soon as an Mbuf becomes
  1675.       available.  There will only be one "buffer available" Upcall, even
  1676.       if this function has been called several times before.
  1677. SeeAlso: AX=0005h,AX=0006h,AX=0012h,AX=0013h
  1678.  
  1679. Format of SK-UPPS Memory Buffer (Mbuf):
  1680. Offset    Size    Description    (Table 3096)
  1681.  00h    DWORD    -> NEXT Mbuf (linked list)
  1682.  04h    WORD    OFFSET of actual data within DATA area
  1683.  06h  2 BYTEs    reserved (currently unused)
  1684.  08h    WORD    LENGTH of actual data found in DATA area starting at OFFSET
  1685.  0Ah  2 BYTEs    reserved (currently unused)
  1686.  0Ch    DWORD    -> DATA area (size can be obtained via AX=000Eh call)
  1687.  10h    WORD    PROTOCOL ID of protocol currently "owning" the Mbuf
  1688.  12h    BYTE    IN USE flag; nonzero if Mbuf still in use by DLI (see AX=0006h)
  1689.  13h    BYTE    RECEIVE STATUS (bit 0-7 only; see AX=0007h - Receive Upcall)
  1690. --------N-7C0005-----------------------------
  1691. INT 7C - SK-UPPS Data Link Interface API - RELEASE BUFFER
  1692.     AX = 0005h
  1693.     ES:BX -> Mbuf (see #3096)
  1694. Return: nothing
  1695. SeeAlso: AX=0004h
  1696. --------N-7C0006-----------------------------
  1697. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME
  1698.     AX = 0006h
  1699.     ES:BX -> Mbuf (see #3096)
  1700. Return: nothing
  1701. Notes:    The DLI will send LENGTH bytes found in the Mbuf's DATA area starting
  1702.       at OFFSET. A complete and valid frame must be stored there. The DLI
  1703.       will only copy the current node address (see AX=0003h) to the
  1704.       source node field of the frame's MAC header.
  1705.     On Ethernet, the DLI will always send a minimum of 60 bytes, regardless
  1706.       of the value found in the LENGTH field.
  1707.     This function returns immediately; the DLI will call the protocol's
  1708.       Transmit Upcall (see #3097) when the frame has been sent.
  1709.     The Mbuf's IN USE field will be non-zero until the DLI calls the
  1710.       Transmit Upcall.
  1711. SeeAlso: AX=0002h,AX=0004h,AX=0013h
  1712.  
  1713. (Table 3097)
  1714. Values SK-UPPS Transmit Upcall is called with:
  1715.     ES:BX -> Mbuf (NEXT field destroyed)
  1716.     interrupts disabled
  1717. Note:    On FDDI the bytes of the source and destination node fields in the MAC
  1718.       header have been bit-swapped to physical address format.
  1719. --------N-7C0007-----------------------------
  1720. INT 7C - SK-UPPS Data Link Interface API - REGISTER PROTOCOL
  1721.     AX = 0007h
  1722.     ES:BX -> Protocol Control Block (see #3098)
  1723. Return: AX = completion code (see #3095)
  1724. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  1725.       which provides an API on top of its Data Link Interface, allowing the
  1726.       use of any of several network transport layers
  1727. SeeAlso: AX=0008h,AX=000Bh
  1728.  
  1729. Format of SK-UPPS Protocol Control Block (PCB):
  1730. Offset    Size    Description    (Table 3098)
  1731.  00h    WORD    (big-endian) protocol type
  1732.  02h    WORD    protocol mode (see #3099)
  1733.  04h    DWORD    -> Receive Upcall routine (see #3100)
  1734.  08h    DWORD    -> Transmit Upcall routine
  1735.  0Ch    DWORD    -> Event Upcall routine (see #3102)
  1736.  10h    DWORD    -> ASCIZ protocol name (zero if none)
  1737.  14h    WORD    protocol ID will be returned here (always non-zero)
  1738.  
  1739. Bitfields for SK-UPPS protocol mode:
  1740. Bit(s)    Description    (Table 3099)
  1741.  0    promiscuous mode; protocol receives all frames regardless of their
  1742.       destination (PROTOCOL TYPE must be FFFFh)
  1743.  1    if set, protocol's Event Upcall will be called on entry and exit of the
  1744.       DLI's Interrupt Service Routine (see #3103)
  1745.  2    DLI 2.2+ hook mode; protocol receives all directed frames destined for
  1746.       this station (PROTOCOL TYPE must be FFFFh)
  1747.  3    DLI 2.3+ receive error frames (only valid in promiscuous mode (0))
  1748.  4-5    DLI 2.5+ frame type:
  1749.     00 Ethernet II; specify type code in PROTOCOL TYPE field (high-low)
  1750.     01 IEEE 802.2; specify Service Access Point (SAP) in MSB
  1751.           (offset 0) of PROCOTOL TYPE field; LSB must be zero
  1752.     10 IEEE 802.2 with SNAP header; specify type code in PROTOCOL TYPE
  1753.           field (high-low)
  1754.     11 reserved (currently unused)
  1755.  6    DLI 2.5+ if set, protocol's Event Upcall will be called with event code
  1756.       EV_BUFFER_WANTED, when DLI runs out of Mbufs
  1757.  7    DLI 2.7+ chain mode; if set, client allows the specified frame type to
  1758.       be shared with other clients
  1759.  8    DLI 2.8+ receive non-LLC frames rather than LLC frames
  1760.  9    DLI 2.8+ receive all multicast frames (see also AX=0009h)
  1761.  10-15    reserved (currently unused; must be zero)
  1762. Notes:    If PROTOCOL TYPE is FFFFh and neither the "promiscuous" nor the "hook"
  1763.       mode is set, the protocol receives all frames that did not match
  1764.       any registered frame type (demultiplexor mode).
  1765.     Protocols using "promiscuous", "hook" or "chain" mode should always
  1766.       return from the Receive Upcall with the received Mbuf in ES:BX and
  1767.       the Carry Flag set. The DLI will then pass the Mbuf to the FEED BACK
  1768.       BUFFER function (see AX=000Fh).
  1769.     Some DLIs do not support all or even any of the "promiscuous",
  1770.       "receive non-LLC" and "receive all multicasts" mode bits.
  1771. SeeAlso: #3098
  1772.  
  1773. (Table 3100)
  1774. Values SK-UPPS Receive Upcall is called with:
  1775.     ES:BX -> Mbuf
  1776.     AX = receive status (see #3101) (also stored in Mbuf's RECEIVE STATUS field)
  1777.     interrupts disabled
  1778. Return: nothing
  1779. SeeAlso: #3102
  1780.  
  1781. Bitfields for SK-UPPS receive status:
  1782. Bit(s)    Description    (Table 3101)
  1783.  0-2    reserved (0), currently unused
  1784.  3    frame check sequence (FCS) error
  1785.  4    overflow (frame too long)
  1786.  5    framing error
  1787.  6    reserved (0), currently unused
  1788.  7    non-LLC frame (see #3099 [bit 8])
  1789.  8-15    reserved (0), currently unused
  1790. Notes:    The protocol's Receive Upcall routine will be called whenever a frame
  1791.       matching the specified frame type is received. A received frame is
  1792.       passed to the protocol in the Mbuf's DATA area at OFFSET and its size
  1793.       is LENGTH bytes.
  1794.     The receive status passed to the Receive Upcall in register AL is
  1795.       always zero, except for protocols using "non-LLC" mode (8 of PCB's
  1796.       protocol mode field) or "promiscuous" mode together with "receive
  1797.       error frames" (0 & 3).
  1798.     Upcalls are FAR routines and must return with a RET FAR. If the Carry
  1799.       Flag is set on return from a Receive or Transmit Upcall, then ES:BX
  1800.       must point to an Mbuf, which the DLI will then pass to the RELEASE
  1801.       BUFFER function (see AX=0005h). See also notes for PROTOCOL MODE.
  1802.  
  1803. (Table 3102)
  1804. Values SK-UPPS Event Upcall is called with:
  1805.     AX = event code (see #3103)
  1806. Return: nothing
  1807. Note:    All Event Upcalls may be ignored by the protocol.
  1808. SeeAlso: #3100
  1809.  
  1810. (Table 3103)
  1811. Values for SK-UPPS Event Upcall event code:
  1812.  00h    EV_BUFFER_AVAILABLE client may now call REQUEST BUFFER (AX=0004h)
  1813.  01h    EV_ISR_START        start of Interrupt Service Routine
  1814.  02h    EV_ISR_END        end of ISR (see #3099 [bit 1])
  1815.  03h    EV_BUFFER_WANTED    DLI temporarily out of Mbufs
  1816.  04h    EV_NETWORK_STATUS   DLI 2.8+ network status -- DX=status (see #3104)
  1817.  05h    EV_IO_CONTROL        DLI 2.8+ I/O control -- DX=subfunc (see AX=0016h)
  1818. SeeAlso: #3102
  1819.  
  1820. Bitfields for EV_NETWORK_STATUS in register DX:
  1821. Bit(s)    Description    (Table 3104)
  1822.     Token-Ring        FDDI
  1823.  15    SIGNAL_LOSS        SIGNAL_LOSS
  1824.  14    HARD_ERROR        HARD_ERROR
  1825.  13    SOFT_ERROR        SOFT_ERROR
  1826.  12    TRANSMIT_BEACON        TRANSMIT_BEACON
  1827.  11    LOBE_WIRE_FAULT        PATH_TEST_FAILED
  1828.  10    AUTO_REMOVAL        SELF_TEST_REQUIRED
  1829.  9    reserved        reserved
  1830.  8    REMOVE_RECEIVED        REMOTE_DISCONNECT
  1831.  7    COUNTER_OVERFLOW    reserved
  1832.  6    SINGLE_STATION        DUPLICATE_ADDRESS
  1833.  5    RING_RECOVERY        NO_RING_OP_STATUS
  1834.  4    reserved        VERSION_MISMATCH
  1835.  3    reserved        STUCK_BYPASS
  1836.  2    reserved        FDDI_EVENT
  1837.  1    reserved        RING_OP_CHANGE
  1838.  0    reserved        reserved
  1839. Note:    EV_NETWORK_STATUS is not supported on Ethernet
  1840. --------N-7C0008-----------------------------
  1841. INT 7C - SK-UPPS Data Link Interface API - DISABLE PROTOCOL
  1842.     AX = 0008h
  1843.     BX = protocol ID (see #3098)
  1844. Return: AX = completion code (see #3095)
  1845. Note:    the DLI will handle any Mbufs given to TRANSMIT FRAME (AX=0006h) as if
  1846.       they had been given to TRANSMIT FRAME RELEASE (AX=0013h).
  1847.     all multicast addresses registered for this protocol will be disabled.
  1848.     after this function returns, the protocol's Upcall routines will no
  1849.       longer be called.
  1850. SeeAlso: AX=0007h,AX=000Bh
  1851. --------N-7C0009-----------------------------
  1852. INT 7C - SK-UPPS Data Link Interface API - REGISTER MULTICAST
  1853.     AX = 0009h
  1854.     BX = protocol ID (see #3098)
  1855.     ES:DI -> multicast address (6 bytes)
  1856. Return: AX = completion code (see #3095)
  1857. Notes:    The broadcast address is always enabled.
  1858.     Set bit 9 of PCB's protocol mode field in REGISTER PROTOCOL call
  1859.       (AX=0007h) to receive all multicast frames.
  1860. SeeAlso: AX=000Ah,AX=0014h
  1861. --------N-7C000A-----------------------------
  1862. INT 7C - SK-UPPS Data Link Interface API - DISABLE MULTICAST
  1863.     AX = 000Ah
  1864.     BX = protocol ID (see #3098)
  1865.     ES:DI -> multicast address (6 bytes)
  1866. Return: AX = completion code (see #3095)
  1867. SeeAlso: AX=0009h,AX=0014h
  1868. --------N-7C000B-----------------------------
  1869. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL LIST
  1870.     AX = 000Bh
  1871.     ES:DI -> protocol ID buffer
  1872.     CX = number of 2-byte protocol IDs that may be stored in buffer
  1873. Return: AX = completion code (see #3095)
  1874.     CX = number of active protocols (regardless of value returned in AX)
  1875.     protocol ID buffer filled with active protocol IDs
  1876. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  1877.       which provides an API on top of its Data Link Interface, allowing the
  1878.       use of any of several network transport layers
  1879. Note:    If the buffer supplied is too small, CX still contains the total number
  1880.       of active protocols and the buffer has been filled until full.
  1881. SeeAlso: AX=000Ch,AX=0014h
  1882. --------N-7C000C-----------------------------
  1883. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL STATUS
  1884.     AX = 000Ch
  1885.     BX = protocol ID (see #3098,AX=000Bh)
  1886.     ES:DI -> Protocol Status Block (see #3105)
  1887. Return: AX = completion code (see #3095)
  1888. SeeAlso: AX=000Bh,AX=0014h
  1889.  
  1890. Format of SK-UPPS Protocol Status Block (PSB):
  1891. Offset    Size    Description    (Table 3105)
  1892.  00h    DWORD    -> ASCIZ protocol name
  1893.  04h    WORD    protocol mode (see #3099)
  1894.  06h    WORD    protocol type (see AX=0007h)
  1895.  08h    WORD    number of registered multicasts (see AX=0009h,AX=0014h)
  1896. --------N-7C000D-----------------------------
  1897. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATISTICS
  1898.     AX = 000Dh
  1899.     BX = flag: 0=don't clear statistics, 1=clear statistics
  1900.     ES:DI -> Statistics Data Block (see #3106)
  1901. Return: AX = completion code (see #3095)
  1902. SeeAlso: AX=0002h,AX=0015h
  1903.  
  1904. Format of SK-UPPS Statistics Data Block (SDB):
  1905. Offset    Size    Description    (Table 3106)
  1906.  00h    DWORD    node uptime in ticks (1/18.21 sec.)
  1907.  04h    DWORD    bytes received
  1908.  08h    DWORD    bytes transmitted
  1909.  0Ch    DWORD    frames received
  1910.  10h    DWORD    frames transmitted
  1911.  14h    DWORD    multicast bytes received
  1912.  18h    DWORD    multicast frames received
  1913.  1Ch    DWORD    unrecognized frames
  1914.  20h    WORD    missed frames
  1915.  22h    WORD    frame check sequence (FCS) errors
  1916.  24h    WORD    framing errors
  1917.  26h    WORD    babbling errors
  1918.  28h    WORD    late collision errors
  1919.  2Ah    WORD    loss of carrier errors
  1920.  2Ch    WORD    16 retries failed errors
  1921.  2Eh    WORD    overflow errors
  1922. Note:    fields 26h through 2Ch are always zero, except in some very old
  1923.       versions of the DLI.    Use GET MEDIA STATISTICS (AX=0015h) to get
  1924.       more detailed information.
  1925. --------N-7C000E-----------------------------
  1926. INT 7C - SK-UPPS Data Link Interface API - DLI 2.5+ - GET DRIVER INFO
  1927.     AX = 000Eh
  1928.     ES:DI -> Driver Information Block (see #3107)
  1929.     BX = offset of 1st field within DIB to be returned
  1930.     CX = number of bytes to be returned
  1931. Return: AX = completion code (see #3095)
  1932.     CX = number of bytes copied (regardless of value returned in AX)
  1933. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  1934.       which provides an API on top of its Data Link Interface, allowing the
  1935.       use of any of several network transport layers
  1936. SeeAlso: AX=0000h,AX=0002h,AX=000Bh,AX=000Dh,AX=0015h
  1937.  
  1938. Format of SK-UPPS Driver Information Block (DIB):
  1939. Offset    Size    Description    (Table 3107)
  1940.  00h  6 BYTEs    physical node address (from adapter's ROM)
  1941.  06h  6 BYTEs    current node address (see AX=0003h)
  1942.  0Ch    BYTE    adapter id (defined by OEM)
  1943.  0Dh    BYTE    IRQ line (FFh if none)
  1944.  0Eh    DWORD    -> shared memory (zero if none)
  1945.  12h    DWORD    size of shared memory (zero if none)
  1946.  16h    WORD    base I/O port (zero if none)
  1947.  18h    BYTE    DMA line (FFh if none)
  1948.  19h    BYTE    DLI 2.4+ topology (see AX=0000h)
  1949.  1Ah    WORD    size of an Mbuf's DATA area (see #3096)
  1950.  1Ch  2 BYTEs    reserved (currently unused)
  1951.  1Eh    WORD    total number of Mbufs the DLI has
  1952.  20h    WORD    maximum number of Mbufs that can be allocated via REQUEST
  1953.           BUFFER (AX=0004h) and SYNC REQUEST BUFFER (AX=0012h)
  1954.  ---- end of Status Information Block returned by GET DRIVER STATUS (AX=0002h)
  1955.  22h    DWORD    -> ASCIZ adapter name
  1956.  26h    WORD    number of I/O ports used (zero if none)
  1957.  28h    DWORD    line speed in bits/sec.
  1958. --------N-7C000F-----------------------------
  1959. INT 7C - SK-UPPS Data Link Interface API - FEED BACK BUFFER
  1960.     AX = 000Fh
  1961.     ES:BX -> Mbuf (see #3096)
  1962. Return: nothing
  1963. Notes:    A protocol may call this function instead of returning the Mbuf
  1964.       directly from the Receive Upcall if it is running in "promiscuous",
  1965.       "hook" or "chain" mode.
  1966. SeeAlso: AX=0007h
  1967. --------N-7C0010-----------------------------
  1968. INT 7C - SK-UPPS Data Link Interface API - CLIENT HOOK
  1969.     AX = 0010h
  1970. Return: nothing
  1971. Notes:    An application having no active protocols may call this function to
  1972.       prevent the DLI from unloading.
  1973. SeeAlso: AX=0001h,AX=0011h
  1974. --------N-7C0011-----------------------------
  1975. INT 7C - SK-UPPS Data Link Interface API - CLIENT UNHOOK
  1976.     AX = 0011h
  1977. Return: nothing
  1978. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  1979.       which provides an API on top of its Data Link Interface, allowing the
  1980.       use of any of several network transport layers
  1981. SeeAlso: AX=0010h
  1982. --------N-7C0012-----------------------------
  1983. INT 7C - SK-UPPS Data Link Interface API - SYNC REQUEST BUFFER
  1984.     AX = 0012h
  1985.     DX = protocol ID (see #3098)
  1986. Return: AX = completion code (see #3095)
  1987.     if AX=0000h: ES:BX -> Mbuf (see #3096)
  1988. Note:    If the protocol wants to be informed when an Mbuf becomes available,
  1989.       REQUEST BUFFER (AX=0004h) should be used instead.
  1990. SeeAlso: AX=0004h,AX=0005h,AX=0006h,AX=0013h
  1991. --------N-7C0013-----------------------------
  1992. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME RELEASE
  1993.     AX = 0013h
  1994.     ES:BX -> Mbuf (see #3096)
  1995. Return: nothing
  1996. Notes:    Returns immediately; The protocol's Transmit Upcall will NOT be called.
  1997.     The Mbuf may no more be used by the protocol in any way (i.e. the
  1998.       Mbuf's IN USE field may not be polled).
  1999. SeeAlso: AX=0004h,AX=0013h
  2000. --------N-7C0014-----------------------------
  2001. INT 7C - SK-UPPS Data Link Interface API - GET MULTICAST LIST
  2002.     AX = 0014h
  2003.     BX = protocol ID (see #3098,AX=000Bh)
  2004.     ES:DI -> multicast address buffer
  2005.     CX = number of 6-byte multicast addresses that may be stored in buffer
  2006. Return: AX = completion code (see #3095)
  2007.     CX = number of registered multicast addresses for this protocol
  2008.       (regardless of value returned in AX)
  2009.     multicast address buffer filled with multicast addresses registered for
  2010.       this protocol
  2011. Note:    If the buffer supplied is too small, CX still contains the total number
  2012.       of registered multicast addresses for this protocol and the buffer
  2013.       has been completely filled
  2014. SeeAlso: AX=000Bh,AX=0009h,AX=000Ch
  2015. --------N-7C0015-----------------------------
  2016. INT 7C - SK-UPPS Data Link Interface API - DLI 2.6+ - GET MEDIA STATISTICS
  2017.     AX = 0015h
  2018.     ES:DI -> media-specific statistics buffer (see #3108,#3109,#3110)
  2019.     BX = offset of 1st field within MSS to be returned
  2020.     CX = number of bytes to be returned
  2021. Return: AX = completion code (see #3095)
  2022.     CX = number of bytes copied (regardless of value returned in AX)
  2023. Note:    not supported by all DLIs (will return AX=FFFFh if not supported).
  2024. SeeAlso: AX=0000h,AX=000Dh
  2025.  
  2026. Format of SK-UPPS media-specific statistics for Ethernet:
  2027. Offset    Size    Description    (Table 3108)
  2028.  00h    DWORD    alignment errors
  2029.  04h    DWORD    frame check sequence (FCS) errors
  2030.  08h    DWORD    single collision frames
  2031.  0Ch    DWORD    multiple collision frames
  2032.  10h    DWORD    signal quality error (SQE) test errors
  2033.  14h    DWORD    deferred transmissions
  2034.  18h    DWORD    late collisions
  2035.  1Ch    DWORD    excessive collisions
  2036.  20h    DWORD    internal MAC transmit errors
  2037.  24h    DWORD    carrier sense errors
  2038.  28h    DWORD    excessive deferrals
  2039.  2Ch    DWORD    frame too longs
  2040.  30h    DWORD    in range length errors
  2041.  34h    DWORD    out of range length fields
  2042.  38h    DWORD    internal MAC receive errors
  2043.  
  2044. Format of SK-UPPS media-specific statistics for FDDI:
  2045. Offset    Size    Description    (Table 3109)
  2046.  00h    DWORD    SMT operating version id (refer to ANSI 7.1.2.2)
  2047.  04h    DWORD    SMT CF state: 1=Isolated, 2= Wrap_S, 3=Wrap_A, 4=Wrap_B,
  2048.           5=Wrap_AB, 6=Thru (refer to ANSI SMT 9.7.4.3)
  2049.  08h    DWORD    SMT frames sent
  2050.  0Ch    DWORD    SMT frames received
  2051.  10h    DWORD    SMT ring up count
  2052.  14h  6 BYTEs    MAC upstream neighbour
  2053.  1Ah  6 BYTEs    MAC downstream neighbour
  2054.  20h    DWORD    MAC frame counter (refer to ANSI MAC 2.2.1)
  2055.  24h    DWORD    MAC error counter ( " )
  2056.  28h    DWORD    MAC lost counter ( " )
  2057.  2Ch    BYTE    port 1 link error estimate (ranges from 10**-4 to 10**-15 and
  2058.           is reported as the absolute value of the exponent)
  2059.  2Dh    BYTE    port 2 link error estimate ( " )
  2060.  2Eh  2 BYTEs    reserved (currently unused)
  2061.  30h    DWORD    attachment class: 1=single-attachment (S PORT),
  2062.           2=dual-attachment (A/B PORT pairs), 3=concentrator (M PORTs)
  2063.  34h    DWORD    attachment optical bypass present: 1=true, 2=false
  2064.  
  2065. Format of SK-UPPS media-specific statistics for Token-Ring:
  2066. Offset    Size    Description    (Table 3110)
  2067.  00h  6 BYTEs    upstream neighbour
  2068.  06h    WORD    local ring number
  2069.  08h    DWORD    ring up count
  2070.  0Ch    DWORD    signal loss errors
  2071.  10h    DWORD    lobe wire faults
  2072.  14h    DWORD    ring recovery count
  2073.  18h    DWORD    line errors
  2074.  1Ch    DWORD    burst errors
  2075.  20h    DWORD    ARI/FCI errors
  2076.  24h    DWORD    lost frame errors
  2077.  28h    DWORD    receive congestion errors
  2078.  2Ch    DWORD    frame copied errors
  2079.  30h    DWORD    token errors
  2080.  34h    DWORD    DMA bus errors
  2081.  38h    DWORD    DMA parity errors
  2082.  3Ch    DWORD    receive overflow errors
  2083. --------N-7C0016-----------------------------
  2084. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - DRIVER I/O CONTROL
  2085.     AX = 0016h
  2086.     DX = subfunction; bits 14-15 specify direction of I/O:
  2087.         00 no data at all (ES:BX undefined)
  2088.         01 driver -> application (GET)
  2089.         10 application -> driver (SET)
  2090.         11 both directions (GET/SET)
  2091.     ES:BX -> I/O buffer (optional)
  2092.     CX = size of buffer (if ES:BX valid)
  2093. Return: AX = completion code; defined by OEM
  2094. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  2095.       which provides an API on top of its Data Link Interface, allowing the
  2096.       use of any of several network transport layers
  2097. Notes:    not supported by all DLIs (will return AX=FFFFh if not supported)
  2098.     subfunction codes are defined by OEMs
  2099. SeeAlso: AX=0001h
  2100. --------N-7C0017-----------------------------
  2101. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - INTERRUPT REQUEST
  2102.     AX = 0017h
  2103. Return: AX = completion code (see #3095)
  2104. Notes:    not supported by all DLIs (will return AX=FFFFh, if not supported).
  2105.     must be called with interrupts disabled; when the client re-enables
  2106.       interrupts, an interrupt will be generated and reported to the client
  2107.       through an Event Upcall (see #3102 [EV_ISR_START/EV_ISR_END])
  2108. SeeAlso: AX=0007h
  2109. --------t-7D---------------------------------
  2110. INT 7D O - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT
  2111. Note:    this interface has been moved to INT 2D; there are no known
  2112.       implementations on INT 7D
  2113. SeeAlso: INT 2D"AMIS",INT 2F"NOTES"
  2114. --------S-7D---------------------------------
  2115. INT 7D U - YTERM 1.4 - CLOCK SUPPORT
  2116. SeeAlso: INT 7E"YTERM"
  2117. --------E-7D---------------------------------
  2118. INT 7D - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ5
  2119. Notes:    this vector is overwritten when GO32 starts but is not restored by
  2120.       early versions of the extender
  2121.     the newest versions of GO32 dynamically allocate the vectors used
  2122.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  2123. SeeAlso: INT 0D"IRQ5",INT 7C"GO32",INT 7E"GO32"
  2124. --------U-7D---------------------------------
  2125. INT 7D - HyperPAD v2.2 - API ACCESS
  2126. Note:    this vector is hooked but immediately passed on (without checking
  2127.       whether the previous handler was 0000h:0000h).  The sole purpose of
  2128.       this vector is to provide the address of the data area described
  2129.       below (see #3111).
  2130.  
  2131. Format of HyperPAD data area:
  2132. Offset    Size    Description    (Table 3111)
  2133.  -16h    DWORD    pointer to ??? FAR function
  2134.  -12h    DWORD    pointer to callback setting function
  2135.         [C calling conventions, (*callback)(int (_loadds far *)()) ]
  2136.  -0Eh 6 BYTEs    signature "BRC001"
  2137.  -08h    DWORD    pointer to previous INT 7D handler
  2138.  -04h    DWORD    pointer to ??? data
  2139.  00h        HyperPAD INT 7D handler
  2140. ----------7D---------------------------------
  2141. INT 7D - IBM DOS 6.1 E.EXE - ???
  2142. Note:    E.EXE checks whether this interrupt is in use (not 0000h:0000h),
  2143.       and if it is used, attempts to load E55VGA.EX instead of the
  2144.       default E.EX overlay.     However, E55VGA.EX is not included in
  2145.       IBM DOS 6.1.
  2146. --------G-7D00-------------------------------
  2147. INT 7D - SCSILink - RESET SCSI BUS
  2148.     AH = 00h
  2149. Program: SCSILink is a TSR by Cross Products Ltd which allows its PC-hosted
  2150.       cross assemblers and similar products to communicate with Cross
  2151.       Products hardware debuggers
  2152. Desc:    reset all devices on the SCSI bus
  2153. Note:    the installation check is the signature "SCSILINK" immediately prior
  2154.       to the interrupt handler
  2155. Index:    installation check;SCSILink
  2156. --------G-7D01-------------------------------
  2157. INT 7D - SCSILink - CONNECT TO TARGET
  2158.     AH = 01h
  2159.     AL = target ID
  2160. Return: CF clear if successful
  2161.     CF set on error
  2162.         AL = initiator error
  2163.         AH = target error
  2164. Desc:    arbitrate the use of the bus and select the specified target device
  2165. --------G-7D02-------------------------------
  2166. INT 7D - SCSILink - SEND COMMAND
  2167.     AH = 02h
  2168.     ES:BX -> parameter block (see #3112)
  2169. Return: CF clear if successful
  2170.     CF set on error
  2171.         AL = initiator error
  2172.         AH = target error
  2173. Desc:    send the specified command block to the target device and perform any
  2174.       related I/O
  2175.  
  2176. Format of SCSILink parameter block:
  2177. Offset    Size    Description    (Table 3112)
  2178.  00h    DWORD    size of command block
  2179.  04h    DWORD    address of command block (see #3113)
  2180.  08h    DWORD    size of buffer
  2181.  0Ch    DWORD    address of buffer
  2182.  
  2183. Format of SCSILink command block:
  2184. Offset    Size    Description    (Table 3113)
  2185.  00h        info not yet available
  2186. --------G-7D03-------------------------------
  2187. INT 7D - SCSILink - SET TIMEOUT
  2188.     AH = 03h
  2189.     AL = timeout selector (see #3114)
  2190.     BX = new value in 55ms ticks
  2191. Desc:    change an internal timeout value to allow communication with very
  2192.       slow targets
  2193.  
  2194. (Table 3114)
  2195. Values for SCSILink timeout selector:
  2196.  00h    time to wait for bus (default 18)
  2197.  01h    time to wait for new phase (default 5)
  2198.  02h    maximum time to send/receive block (default 18)
  2199.  03h    time to wait for reselect (default 180)
  2200. --------G-7D04-------------------------------
  2201. INT 7D - SCSILink - GET ERROR STRING
  2202.     AH = 04h
  2203.     AL = error number
  2204. Return: ES:BX -> ASCIZ error string for error number
  2205. --------G-7D05-------------------------------
  2206. INT 7D - SCSILink - GET ADDRESS
  2207.     AH = 05h
  2208. Return: AL = DMA channel
  2209.     AH = initiator ID
  2210.     BX = card address
  2211. Desc:    determine the current hardware configuration
  2212. --------G-7D06-------------------------------
  2213. INT 7D - SCSILink - PUT DATA
  2214.     AH = 06h
  2215.     CX = number of bytes to store (0001h-0100h)
  2216.     ES:BX -> data to be saved
  2217. Return: CF clear if successful
  2218.     CF set on error
  2219.         AL = error code (01h = too much data)
  2220. Note:    the specified data is stored in SCSILink's PSP
  2221. SeeAlso: AH=07h
  2222. --------G-7D07-------------------------------
  2223. INT 7D - SCSILink - GET DATA
  2224.     AH = 07h
  2225.     CX = number of bytes to retrieve (0001h-0100h)
  2226.     ES:BX -> buffer for data
  2227. Return: CF clear if successful
  2228.     CF set on error
  2229.         AL = error code (01h = too much data)
  2230. Note:    retrieve data previously stored with AH=06h
  2231. SeeAlso: AH=06h
  2232. --------G-7D08-------------------------------
  2233. INT 7D - SCSILink - TERMINATE SESSION
  2234.     AH = 08h
  2235. Desc:    indicate to any other programs that intercept INT 7D that the program
  2236.       has finished with the link
  2237. Note:    the program should call this function even if a SCSI error caused its
  2238.       termination
  2239. --------G-7D09-------------------------------
  2240. INT 7D - SCSILink - POLL REQUEST
  2241.     AH = 09h
  2242.     AL = target ID
  2243. Return: AL = status
  2244.         FEh resident driver experienced SCSI error
  2245.         FFh resident driver handleded event
  2246. Desc:    give any drivers chained onto INT 7D a chance to handle an exception
  2247.       not specifically handled by the calling program
  2248. Notes:    this service exists so that resident disk servers, etc. can continue
  2249.       running even while debuggers and profilers are active
  2250.     the resident driver assumes that a connection has been established and
  2251.       attempts to leave the target connected
  2252. --------*-7E---------------------------------
  2253. INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY
  2254. --------S-7E---------------------------------
  2255. INT 7E U - YTERM 1.4 - ???
  2256. SeeAlso: INT 7D"YTERM",INT 7F"YTERM"
  2257. --------E-7E---------------------------------
  2258. INT 7E - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ6
  2259. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  2260.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  2261. Notes:    this vector is overwritten when GO32 starts but is not restored by
  2262.       early versions of the extender
  2263.     the newest versions of GO32 dynamically allocate the vectors used
  2264.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  2265. SeeAlso: INT 0E"IRQ6",INT 7D"GO32",INT 7F"GO32"
  2266. --------s-7E00-------------------------------
  2267. INT 7E - MaxSBOS v0.21 - GET ???
  2268.     AH = 00h
  2269. Return: DX:AX -> ???
  2270. SeeAlso: AH=01h,AH=02h,AH=03h
  2271. --------s-7E0001-----------------------------
  2272. INT 7E - IWSBSDRV v1.41 - SEND MIDI BYTE
  2273.     AX = 0001h
  2274.     DX = game device handle
  2275.     BL = MIDI byte to send???
  2276.     ???
  2277. Return: EAX = status
  2278.         00000000h if successful
  2279.         FFFFFFFFh on error (function disabled)
  2280. Program: IWSBSDRV is the resident portion of the InterWave SBOS sound card
  2281.       emulator for the Gravis UltraSound Plug-and-Play
  2282. Note:    this function is only supported if the MIDISIMPLE device has been
  2283.       opened via the InterWave Game API (see INT 2F/AX=CD21h)
  2284. SeeAlso: AX=0002h,INT 2F/AX=CD21h,#3323
  2285. --------s-7E0002-----------------------------
  2286. INT 7E - IWSBSDRV v1.41 - SEND MIDI STRING
  2287.     AX = 0002h
  2288.     DX = game device handle
  2289.     ES:EDI -> buffer containing MIDI string to be sent
  2290.     ECX = length of buffer in bytes
  2291. Return: EAX = status
  2292.         00000000h if successful
  2293.         FFFFFFFFh on error (function disabled)
  2294. Note:    this function is only supported if the MIDISIMPLE device has been
  2295.       opened via the InterWave Game API (see INT 2F/AX=CD21h)
  2296. SeeAlso: AX=0001h,INT 2F/AX=CD21h,#3323
  2297. --------s-7E00F6-----------------------------
  2298. INT 7E - SBOS v3.82 - SET ???
  2299.     AX = 00F6h
  2300.     BL = ??? (max. 20h, value will be set to 20h if BL greater)
  2301. Return: AX=00F9h,AX=00FEh
  2302. --------s-7E00F7-----------------------------
  2303. INT 7E - SBOS v3.82 - GET ???
  2304.     AX = 00F7h
  2305. Return: AX = status
  2306.         0000h failed
  2307.         0001h successful
  2308.         BX = ??? (if nonzero, ??? is hooked) (see AX=00FFh)
  2309.         CH = ???
  2310.         CL = ???
  2311. SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh
  2312. --------s-7E00F9-----------------------------
  2313. INT 7E - SBOS v3.82 - SET ???
  2314.     AX = 00F9h
  2315.     BX = ???
  2316. SeeAlso: AX=00F6h,AX=00FBh,AX=00FDh
  2317. --------s-7E00FB-----------------------------
  2318. INT 7E - SBOS v3.82 - SET ???
  2319.     AX = 00FBh
  2320.     BL = ???
  2321. SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh
  2322. --------s-7E00FD-----------------------------
  2323. INT 7E - SBOS v3.82 - SET ???
  2324.     AX = 00FDh
  2325.     BL = ??? (max. 20h, value will be set to 20h if BL greater)
  2326. SeeAlso: AX=00F9h,AX=00FEh
  2327. --------s-7E00FE-----------------------------
  2328. INT 7E - SBOS v3.82 - UNINSTALL
  2329.     AX = 00FEh
  2330. Return: AX = status
  2331.         0000h successful
  2332.         00FCh unable to unhook INT 21
  2333.         00FDh unable to unhook INT 09
  2334.         00FEh unable to release memory
  2335. Program: SBOS is a SoundBlaster emulator for the Gravis UltraSound
  2336. Range:    SBOS may use INT 78-INT 7F
  2337. Notes:    the installation check for SBOS is to test for the ASCII signature
  2338.       "SBOS" at offset 0Ah in the interrupt handler's segment (similar
  2339.       to one of the possible EMS installation checks)
  2340.     this function may not be called if any SBOS vectors have been hooked
  2341. SeeAlso: INT 21/AX=FD12h,INT 78"UltraMID"
  2342. --------s-7E00FF-----------------------------
  2343. INT 7E - SBOS v3.82 - SET INTERRUPT FOR ???
  2344.     AX = 00FFh
  2345.     BL = new interrupt vector to hook
  2346. Return: BX = 03CDh if supported
  2347. Desc:    unhooks the current interrupt handler for ???, and reconnects it to the
  2348.       specified new interrupt number
  2349. SeeAlso: AX=00F7h,AX=00F9h,AX=00FEh
  2350. --------s-7E01-------------------------------
  2351. INT 7E - MaxSBOS v0.21 - ???
  2352.     AH = 01h
  2353.     ???
  2354. Return: ???
  2355. Program: MaxSBOS is a SoundBlaster FM synthesis emulator for the Gravis
  2356.       UltraSound MAX
  2357. Range:    INT 78-INT 7F, selected by commandline parameter
  2358. Note:    the installation check is the same as for 'regular' SBOS (see AX=00FEh)
  2359.       although the API in v0.21 does not provide the functions present in
  2360.       the older SBOS
  2361. SeeAlso: AX=00FEh,AH=02h,AH=03h
  2362. --------s-7E02-------------------------------
  2363. INT 7E - MaxSBOS v0.21 - ???
  2364.     AH = 02h
  2365. Return: AX = FFFFh
  2366. SeeAlso: AX=00FEh,AH=01h,AH=03h
  2367. --------s-7E03-------------------------------
  2368. INT 7E - MaxSBOS v0.21 - NOP
  2369.     AH = 03h
  2370. Return: nothing
  2371. SeeAlso: AX=00FEh,AH=01h,AH=02h
  2372. --------m-7E5857BL57-------------------------
  2373. INT 7E - XLOAD - INSTALLATION CHECK
  2374.     AX = 5857h
  2375.     BL = 57h
  2376. Return: AX = 0000h if installed
  2377. Program: XLOAD is the LOADHIGH-equivalent from Helix Software's Netroom
  2378. SeeAlso: AX=5857h/BL=5Ah,AX=5857h/BL=5Bh
  2379. --------m-7E5857BL5A-------------------------
  2380. INT 7E - XLOAD - GET ???
  2381.     AX = 5857h
  2382.     BL = 5Ah
  2383. Return: AX = 0000h
  2384.     CX = ???
  2385.     DS:SI -> ???
  2386. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Bh
  2387. --------m-7E5857BL5B-------------------------
  2388. INT 7E - XLOAD - GET XLOAD MEMORY SIZE
  2389.     AX = 5857h
  2390.     BL = 5Bh
  2391. Return: AX = 0000h
  2392.     CX = segment of XLOAD TSR
  2393.     DX = size of memory block in which XLOAD TSR is located
  2394. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Ah
  2395. --------s-7E--80-----------------------------
  2396. INT 7E - IWSBSDRV v1.41 - GET ???
  2397.     AL = 80h
  2398. Return: DX:AX -> ???
  2399. SeeAlso: AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h
  2400. --------s-7E--81-----------------------------
  2401. INT 7E - IWSBSDRV v1.41 - ???
  2402.     AL = 81h
  2403.     ???
  2404. Return: ???
  2405. SeeAlso: AL=80h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h
  2406. --------s-7E--82-----------------------------
  2407. INT 7E - IWSBSDRV v1.41 - GET ???
  2408.     AL = 82h
  2409. Return: AX = ??? (FFFFh)
  2410. SeeAlso: AL=80h,AL=81h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h
  2411. --------s-7E--83-----------------------------
  2412. INT 7E - IWSBSDRV v1.41 - ??? (CALLS VIWD.VXD)
  2413.     AL = 83h
  2414.     ???
  2415. Return: ???
  2416. SeeAlso: AL=80h,AL=81h,AL=82h,AL=84h,AL=85h,AL=86h,AL=87h
  2417. SeeAlso: INT 2F/AX=1684h/BX=38DAh"VIWD"
  2418. --------s-7E--84-----------------------------
  2419. INT 7E - IWSBSDRV v1.41 - WAKE PROGRAM???
  2420.     AL = 84h
  2421. Return: AL = status
  2422.         00h successful
  2423.         else failed
  2424. SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=85h,AL=86h,AL=87h
  2425. SeeAlso: INT 2F/AX=CD04h"InterWave"
  2426. --------s-7E--85-----------------------------
  2427. INT 7E - IWSBSDRV v1.41 - SET ??? FLAG
  2428.     AL = 85h
  2429. Return: nothing
  2430. SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=86h,AL=87h
  2431. --------s-7E--86-----------------------------
  2432. INT 7E - IWSBSDRV v1.41 - HOOK INT 21
  2433.     AL = 86h
  2434. Return: AX,BX,DX,ES destroyed
  2435. SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=87h
  2436. --------s-7E--87-----------------------------
  2437. INT 7E - IWSBSDRV v1.41 - RESTORE INT 21
  2438.     AL = 87h
  2439. Return: AX,DX destroyed
  2440. SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h
  2441. --------V-7F---------------------------------
  2442. INT 7F - Halo88 - API
  2443.     BX = function number (see #3115)
  2444.     additional parameters on stack
  2445. Return: ???
  2446. Program: Halo88 is a suite of graphics routines
  2447. Note:    according to Stuart Kemp, the code appears to make no provisions for
  2448.        chaining
  2449.  
  2450. (Table 3115)
  2451. Values for Halo88 API function:
  2452.  64h    arc
  2453.  65h    bar
  2454.  66h    box
  2455.  67h    circle
  2456.  68h    clr
  2457.  69h    default hatch style
  2458.  6Ah    default line style
  2459.  6Bh    delhcur
  2460.  6Ch    delln / deltcur
  2461.  6Dh    ellipse
  2462.  6Eh    fill
  2463.  6Fh    flood
  2464.  70h    flood2
  2465.  71h    init graphics
  2466.  72h    init hcur
  2467.  73h    init marker
  2468.  74h    init tcur
  2469.  75h    inqarc
  2470.  76h    inqbknd
  2471.  77h    inqclr
  2472.  78h    inqerr
  2473.  79h    inqgcur
  2474.  7Ah    inqhcur
  2475.  7Bh    inqmarker
  2476.  7Dh    inqtcur
  2477.  7Eh    inqtext
  2478.  7Fh    lnabs
  2479.  80h    lnrel
  2480.  81h    markerabs
  2481.  82h    markerrel
  2482.  83h    moveabs
  2483.  84h    movehcurabs
  2484.  85h    movehcurrel
  2485.  86h    moverel
  2486.  87h    movetcurabs
  2487.  88h    movetcurrel
  2488.  89h    movefrom
  2489.  8Ah    moveto
  2490.  8Bh    pie
  2491.  8Ch    polylnabs
  2492.  8Dh    polylnrel
  2493.  8Eh    ptabs
  2494.  8Fh    ptrel
  2495.  91h    setasp
  2496.  92h    set color
  2497.  93h    set font
  2498.  94h    set hatch    style
  2499.  95h    set line style
  2500.  97h    settext
  2501.  98h    set text color
  2502.  99h    btext
  2503.  9Ah    setseg
  2504.  9Bh    display
  2505.  9Ch    setscreen
  2506.  9Eh    close graphics
  2507.  9Fh    ftinit
  2508.  A0h    ftlocate
  2509.  A1h    ftext
  2510.  A5h    set viewport
  2511.  A6h    set window
  2512.  A7h    set world
  2513.  AAh    ftcolor
  2514.  ACh    initlp
  2515.  ADh    inqasp
  2516.  AEh    inqdev
  2517.  AFh    inqdisplay
  2518.  B0h    inqft
  2519.  B1h    inqftcolor
  2520.  B2h    inqinterlace
  2521.  B3h    inqlpa
  2522.  B4h    inqlpg
  2523.  B5h    inqmode
  2524.  B6h    inqscreen
  2525.  B7h    inqversion
  2526.  B8h    roam
  2527.  B9h    scroll
  2528.  BAh    setieee
  2529.  BBh    set interlace
  2530.  BCh    shift
  2531.  BDh    start graphics
  2532.  BEh    vpan
  2533.  CBh    gwrite
  2534.  CCh    gread
  2535.  CDh    setxor
  2536.  CEh    rbox
  2537.  CFh    rcir
  2538.  D0h    rlnabs
  2539.  D1h    rlnrel
  2540.  D2h    delbox
  2541.  D3h    delcir
  2542.  D5h    setseg2
  2543.  DCh    worldoff
  2544.  DDh    mapwtod
  2545.  DEh    mapdtow
  2546.  DFh    mapwton
  2547.  E0h    mapntow
  2548.  E1h    mapdton
  2549.  E2h    mapntod
  2550.  E3h    inqworld
  2551.  E4h    inqviewport
  2552.  E5h    set line width
  2553.  E6h    lnjoint
  2554.  E7h    set locator
  2555.  E8h    read locator
  2556.  E9h    setdev
  2557.  EBh    setstext
  2558.  ECh    setstclr
  2559.  EDh    setstang
  2560.  EEh    stext
  2561.  EFh    inqstext
  2562.  F0h    setdegree
  2563.  F1h    inqstsize
  2564.  F2h    polyfabs
  2565.  F3h    polyfrel
  2566.  F4h    inqdrange
  2567.  F5h    inqstang
  2568.  F6h    orglocator
  2569.  F7h    inqlocator
  2570.  F8h    inqarea
  2571.  F9h    setipal
  2572.  FAh    setborder
  2573.  FBh    inqcrange
  2574.  FEh    setclip
  2575.  FFh    fcir
  2576. 100h    setcrange
  2577. 101h    setdrange
  2578. 102h    setlattr
  2579. 103h    polycabs
  2580. 104h    polycrel
  2581. 108h    memcom
  2582. 109h    memexp
  2583. 10Ah    memmov
  2584. 10Eh    movefx
  2585. 10Fh    movetx
  2586. 110h    inqrgb
  2587. 111h    save image
  2588. 112h    restore image
  2589. 113h    setapal
  2590. 114h    setxpal
  2591. 118h    inqtsize
  2592. 12Eh    gprint
  2593. 130h    setprn
  2594. 131h    setpattr
  2595. 133h    setbattr
  2596. 135h    pexpand
  2597. 136h    ptnorm
  2598. 137h    pfnorm
  2599. 13Bh    inqprn
  2600. 13Ch    lopen
  2601. 13Dh    lclose
  2602. 13Eh    lappend
  2603. 13Fh    lrecord
  2604. 140h    lswitch
  2605. 142h    inqfun
  2606. 15Dh    lsetup
  2607. 15Eh    lrest
  2608. 15Fh    lsave
  2609. --------N-7F---------------------------------
  2610. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  2611.     AL = request ID
  2612.         01h "Request"/"RequestDirect"
  2613.         ES:BX -> pRq
  2614.         DX ignored
  2615.         04h "Wait"
  2616.         ES:BX -> ppMsgRet
  2617.         DX = exchange
  2618.         05h "AllocExch"
  2619.         ES:BX -> pExchRet
  2620.         06h "DeAllocExch"
  2621.         DX = exchange
  2622.         07h "Check"
  2623.         ES:BX -> ppMsgRet
  2624.         DX = exchange
  2625.     CX = 4354h ('CT')
  2626. Return: AX = status
  2627.         0000h successful
  2628. --------S-7F---------------------------------
  2629. INT 7F - Telebit ACS SERIAL I/O
  2630.     ES:SI-> parameter block (see #3116)
  2631. Return: CF set on error
  2632.     CF clear on success
  2633. Notes:    the signature "PDGATEWRKSTNIF" appears just prior to the interrupt
  2634.       handler; this serves as the installation check
  2635. Index:    installation check;Telebit ACS Serial I/O
  2636.  
  2637. Format of Telebit ACS parameter block:
  2638. Offset    Size    Description    (Table 3116)
  2639.  00h    BYTE    command (see #3117)
  2640.  01h    BYTE    gateway number
  2641.  02h    BYTE    reserved
  2642.  03h    BYTE    port
  2643.  04h 17 BYTEs    auxiliary buffer
  2644.  15h    BYTE    session
  2645.  16h    WORD    count of bytes passed to API
  2646.  18h    DWORD    buffer pointer passed to/from API
  2647.  1Ch    WORD    count of bytes passed from API
  2648.  1Eh    BYTE    return code (see #3118)
  2649.  
  2650. (Table 3117)
  2651. Values for Telebit ACS command:
  2652.  3Ch    status
  2653.  3Dh    connect
  2654.  3Eh    disconnect
  2655.  3Fh    read
  2656.  40h    data/command write
  2657.  41h    clear receive buffer
  2658.  42h    get configuration
  2659.  43h    get receiver status
  2660.  44h    raw write
  2661.  45h    search servers
  2662.  46h    set transmit buffer size
  2663.  
  2664. (Table 3118)
  2665. Values for Telebit ACS return code:
  2666.  00h    success
  2667.  01h    invalid session
  2668.  05h    servername invalid
  2669.  06h    NetWare fileserver bindery is locked
  2670.  07h    communication server not active
  2671.  08h    general failure in NetWare fileserver
  2672.  09h    not logged into a fileserver
  2673.  10h    connection table full
  2674.  11h    no response from communication server
  2675.  12h    connection attempt terminated abnormally
  2676.  13h    connection refused - no sessions available
  2677.  14h    gateway number/port already in use
  2678.  15h    invalid connection response
  2679.  16h    port invalid
  2680.  17h    incorrect version in server response
  2681.  18h    gateway number/port combination not configured
  2682.  19h    initialization has not been completed
  2683.  20h    no more sockets are available
  2684.  21h    no active poolname
  2685.  23h    FATAL internal interface error
  2686.  24h    registration of host workstation failed - name is already in use
  2687.  25h    registration of host workstation failed - workstation name table full
  2688.  26h    registration of host workstation failed - only one session may be
  2689.       registered for dial-in
  2690.  FFh    Telebit ACS API is busy - retry later
  2691. --------N-7F---------------------------------
  2692. INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
  2693. Notes:    the installation check consists of checking for the signature "Lynn"
  2694.       in the four bytes preceding the interrupt handler; if present, the
  2695.       current program is running as a DOS task on a non-dedicated NetWare
  2696.       2.x file server.
  2697.     Before placing the server into "console" mode, it is recommended that
  2698.       NetWare broadcast messages be disabled with INT 21/AH=DEh/DL=00h.
  2699. SeeAlso: INT 21/AH=DEh/DL=04h
  2700. Index:    installation check;non-dedicated NetWare server
  2701. --------S-7F---------------------------------
  2702. INT 7F U - YTERM - ???
  2703. SeeAlso: INT 7E"YTERM"
  2704. --------E-7F---------------------------------
  2705. INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
  2706. Notes:    this vector is overwritten when GO32 starts but is not restored by
  2707.       early versions of the DOS extender
  2708.     the newest versions of GO32 dynamically allocate the vectors used
  2709.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  2710. SeeAlso: INT 0F"IRQ7",INT 7E"GO32"
  2711. ----------7F---------------------------------
  2712. INT 7F - Canon IXHND2 Scanner Interface
  2713. --------U-7F---------------------------------
  2714. INT 7F - SBS WinRun 1.00 - TRANSMITTER ENTRY POINT
  2715.     DS:SI -> WinRun control block (WCB) (see #3119)
  2716. Return: WinRun receiver status returned in WCB
  2717. Program: WinRun is a DOS/Windows utility written by Sven B. Schreiber to start
  2718.       Windows applications from a virtual DOS machine under Windows
  2719. Note:    The WinRun transmitter (WINRUN-T.COM) and receiver (WINRUN-R.EXE) need
  2720.       to be up and running
  2721.  
  2722. Format of the WinRun control block (WCB):
  2723. Offset    Size    Description    (Table 3119)
  2724.  00h    DWORD    pointer to ASCIZ command string
  2725.  04h    WORD    (ret) WinRun receiver status
  2726.         0000h-001Fh WinExec() error
  2727.         0020h-FFFEh WinExec() instance handle
  2728.         FFFFh        Windows not running or WinRun receiver not
  2729.                   installed
  2730. --------N-7F---------------------------------
  2731. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  2732. Notes:    the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  2733.       MW386 multitasking system is present (i.e. signature "NXNX")
  2734.     NTNX allows its API to be placed on a different interrupt than 7Fh at
  2735.       load time.  To determine the actual vector used, open the device
  2736.       "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  2737.       INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  2738.       be the actual interrupt number being used; the other interrupts may
  2739.       be found with INT 7F/AH=09h/CL=03h
  2740. --------N-7F---------------------------------
  2741. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  2742. Note:    a program may determine that it is running on an ANSK Slave by checking
  2743.       the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  2744.       address is RAM, and should not be written.  However, the above check
  2745.       will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  2746.       device driver
  2747. --------N-7F00-------------------------------
  2748. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  2749.     AH = 00h
  2750.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  2751. Return: AL = status (see #3120)
  2752.     AH = semaphore owner if status=02h
  2753. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  2754.  
  2755. (Table 3120)
  2756. Values for Alloy function status:
  2757.  00h    successful
  2758.  01h    invalid function
  2759.  02h    semaphore already locked
  2760.  03h    unable to lock/unlock semaphore
  2761.  04h    semaphore space exhausted
  2762.  05h    host/target PC did not respond (NTNX)
  2763. --------T-7F00-------------------------------
  2764. INT 7F - MultiLink Advanced v1.0+ - ENQUEUE SYSTEM RESOURCE
  2765.     AH = 00h
  2766.     BX = resource identifier
  2767.     AL = wait flag
  2768. Return: AL = status
  2769.         00h successful
  2770.         01h resource not available
  2771.         02h user error
  2772. Notes:    the installation check consists of ensuring that the interrupt vector
  2773.       is not pointing at segment 0000h, then checking whether the byte
  2774.       at offset 0000h in the interrupt handler's segment is E9h
  2775.     function will not return until the resource is available if AL is
  2776.       nonzero on entry
  2777.     a maximum of 100 resources may be enqueued at once
  2778. SeeAlso: AH=01h"MultiLink"
  2779. --------N-7F00-------------------------------
  2780. INT 7F - G8BPQ v4.07+ - GET NODE/SWITCH VERSION AND DESCRIPTION
  2781.     AH = 00h
  2782.     ES:SI -> buffer for "USERS" text string
  2783. Return: AX = 4250h ('BP') if installed
  2784.     BX = 5120h ('Q ') if installed
  2785.     DX = version number (DH = major, DL = minor)
  2786.     CX = length of returned string
  2787. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  2788.       John Wiseman which allows a PC to act as a node in an AX.25 network
  2789. SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ"
  2790. --------N-7F01-------------------------------
  2791. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  2792.     AH = 01h
  2793.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  2794. Return: AL = status (see #3120)
  2795.     AH = semaphore owner if status=02h
  2796. SeeAlso: AH=00h,AH=02h,AH=41h
  2797. --------T-7F01-------------------------------
  2798. INT 7F - MultiLink Advanced v1.0+ - DEQUEUE SYSTEM RESOURCE
  2799.     AH = 01h
  2800.     BX = resource identifier
  2801. Return: AL = status
  2802.         00h successful
  2803.         02h user error
  2804. Note:    the indicated resource may be dequeued even if it was enqueued by
  2805.       another task
  2806. SeeAlso: AH=00h"MultiLink",AH=02h"MultiLink"
  2807. --------V-7F01-------------------------------
  2808. INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
  2809.     AH = 01h
  2810. Return: BX = 1234h if installed
  2811.         DX:AX -> array of FAR entry points
  2812.         CH = driver major version
  2813.         CL = driver minor version
  2814. Note:    TIGACD 2.05 returns CF set on unrecognized functions in AX
  2815. SeeAlso: AX=1234h,AX=4321h
  2816. --------N-7F01-------------------------------
  2817. INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK
  2818.     AH = 01h
  2819.     AL = stream number (01h-40h)
  2820.     CL = new application flags
  2821.         bit 7: monitored frames available via AH=0Bh"G8BPQ"
  2822.     DL = new application mask
  2823. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  2824.       John Wiseman which allows a PC to act as a node in an AX.25 network
  2825. Range:    INT 00h to INT FFh, set in configuration file BPQCFG.TXT for v4.03+
  2826.       (earlier versions were hard-wired for INT 7F)
  2827. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ"
  2828. --------I-7F0104BX0000-----------------------
  2829. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  2830.     AX = 0104h (HLLAPI gate ID)
  2831.     BX = 0000h
  2832.     DS:SI -> parameter control block (see #3121)
  2833. Return: parameter control block updated
  2834. Note:    the installation check for the Novell HLLAPI TSR is the signature
  2835.       string "CXI" (for the company Novell bought) immediately prior to
  2836.       the interrupt handler
  2837. SeeAlso: AX=0105h,AX=ABCDh
  2838.  
  2839. Format of HLLAPI parameter control block:
  2840. Offset    Size    Description    (Table 3121)
  2841.  00h  3 BYTEs    signature = 'PCB'
  2842.  03h    BYTE    function number (see #3122,#3123)
  2843.  04h    WORD    segment of control string
  2844.  06h    WORD    offset of control string
  2845.  08h    WORD    length of control string, unless explicit end-of-str char set
  2846.  0Ah    BYTE    unused (IBM)
  2847.         ControlString[0] (Rabbit)
  2848.  0Bh    WORD    return code (see #3125)
  2849.  0Dh    WORD    maximum length of control string (IBM)
  2850.         unused (Rabbit)
  2851.  
  2852. (Table 3122)
  2853. Values for HLLAPI function number:
  2854.  00h    OEM function (Query system for Attachmate implementation)
  2855.  01h    Connect presentation space
  2856.  02h    Disconnect presentation space
  2857.  03h    Send string of keystrokes as if typed from keyboard
  2858.  04h    Wait ~60s, returns status of presentation space
  2859.  05h    Copy current presentation space into a user-defined buffer
  2860.  06h    Search presentation space for first occurrence of a specified string
  2861.  07h    Query cursor location in current presentation space
  2862.  08h    Copy part or all of current presentation space into user buffer
  2863.  09h    Set session parameters; parameters vary by vendor (see #3124)
  2864.  0Ah    Get info on sessions currently connected
  2865.  0Bh    Lock current presentation space
  2866.  0Ch    Unlock previously locked presentation space
  2867.  0Dh    Return copy of operator info area (OIA) of current presentation space
  2868.  0Eh    get attribute byte for given position in the current presentation space
  2869.  0Fh    copy string of characters to the current presentation space
  2870.  10h    workstation control functions
  2871.  11h    storage manager functions, intended primarily for BASIC applications
  2872.     (not implemented by Rabbit)
  2873.  12h    set delay period in half-second intervals
  2874.  14h    get info on level of workstation support used
  2875.  15h    reset session parameters to default values
  2876.  16h    get detailed info on the current session
  2877.  17h    start host notification to application on presentation sp or OIA update
  2878.  18h    check host update when host notification enabled
  2879.  19h    stop host notification
  2880.  1Eh    search field within current presentation space for string
  2881.  1Fh    get first positionof a selected field in the current presentation space
  2882.  20h    get length of specified field
  2883.  21h    copy string into a specified field
  2884.  22h    copy specified field into a user-defined buffer
  2885.  23h    create alternate presentation space (IBM only), don't use with BASIC
  2886.  24h    switch to alternate presentation space (IBM only), not with BASIC
  2887.  25h    display cursor in specified area (IBM only), don't use with BASIC
  2888.  26h    display alternate presentation space (IBM only), don't use with BASIC
  2889.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  2890.  28h    set cursor
  2891.  29h    start Close Intercept
  2892.  2Ah    query Close Intercept
  2893.  2Bh    stop Close Intercept
  2894.  32h    start intercepting keystrokes to allow filtering
  2895.  33h    get keystrokes after turning on interception
  2896.  34h    notify operator when keystroke rejected by filter subroutine
  2897.  35h    stop intercepting keystrokes
  2898.  5Ah    send file
  2899.  5Bh    receive file
  2900.  5Ch    run a program (not implemented by Rabbit)
  2901.  5Dh    execute DOS command (not implemented by Rabbit)
  2902.  63h    change presentation space position to PC display row/col or vice versa
  2903.  65h    connect to Window Services
  2904.  66h    disconnect from Window Services
  2905.  67h    set/query window coordinates
  2906.  68h    set/query window status
  2907.  69h    change presentation space name
  2908.  78h    connect Structured Fields
  2909.  79h    disconnect Structured Fields
  2910.  7Ah    query size of communications buffer
  2911.  7Bh    allocate communications buffer
  2912.  7Ch    free communications buffer
  2913.  7Dh    get request completion state
  2914.  7Eh    read Structured Fields
  2915.  7Fh    write Structured Fields
  2916.  FFh    Get info on DCA implementation
  2917.  
  2918. (Table 3123)
  2919. Values for LLAPI function number:
  2920.  80h    initialize LLAPI (internal call)
  2921.  83h    set Session ID (one-character ID)
  2922.  84h    read Session ID (one-character ID)
  2923.  85h    lock 327x keyboard
  2924.  86h    unlock 327x keyboard
  2925.  87h    wait for Clear to Send
  2926.  88h    type ASCII character
  2927.  89h    type 327x key
  2928.  8Ah    read keyboard lock state
  2929.  8Fh    force screen update
  2930.  90h    view session
  2931.  91h    relinquish (suspend foreground until background becomes idle)
  2932.  92h    poke screen character
  2933.  93h    poke translated character
  2934.  94h    peek screen character
  2935.  95h    peek translated character
  2936.  96h    set cursor position
  2937.  97h    send scan code (Rabbit only)
  2938.  98h    synchronize (returns after keystroke queue empty)
  2939.  99h    type PC key (Rabbit only)
  2940.  
  2941. (Table 3124)
  2942. Values for HLLAPI Function 09h Session Parameters:
  2943.  ASCII        ??? (Rabbit only)
  2944.  ATTRIB        return attributes in hex
  2945.  NOATTRIB    return attributes as blanks
  2946.  CONPHYS    make physical connection
  2947.  CONLOG        only make logical connection
  2948.  EAB        copy extended attribute bytes along with data
  2949.  NOEAB        copy data only
  2950.  ESC=n        set escape character to "n" (default '@')
  2951.  EOT=n        set end of string character (default 00h)
  2952.  FPAUSE        full-duration pause
  2953.  FTNOWAIT    return immediately from functions 5Ah and 5Bh (Rabbit only)
  2954.  FTWAIT        wait for file transfer to complete (Rabbit only)
  2955.  IPAUSE        interruptable pause
  2956.  RABESC        ??? (Rabbit only)
  2957.  NORABESC    ??? (Rabbit only)
  2958.  SCANCODE    ??? (Rabbit only)
  2959.  STRLEN        use explicit string lengths
  2960.  STREOT        use terminated strings
  2961.  SRCHALL    search entire presentation space
  2962.  SRCHFROM    search from specified offset
  2963.  SRCHFRWD    search forward from position 1
  2964.  SRCHBKWD    search backward from last position in presentation space
  2965.  TIMEOUT=n    ??? (Rabbit only)
  2966.  TWAIT        wait specified time for keyboard ready
  2967.  LWAIT        wait until keyboard ready
  2968.  NWAIT        no wait
  2969.  TRON        enable tracing
  2970.  TROFF        disable tracing
  2971.  AUTORESET    send reset before sending keys with function 03h
  2972.  NORESET    don't send reset
  2973.  QUIET        don't display messages sent with INT 21/AH=09h
  2974.  NOQUIET    allow messages to be displayed
  2975.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  2976.  XLATE        translate extended attribute bytes
  2977.  NOXLATE    don't translate
  2978.  NEWRET        use HLLAPI v3.0 return code conventions
  2979.  OLDRET        use HLLAPI v2.0 return code conventions
  2980.  
  2981. (Table 3125)
  2982. Values for Windows HLLAPI return code:
  2983.  00h    successful
  2984.  01h    Presentation Space not connected/requested size unavailable
  2985.  02h    invalid function or parameter error/invalid block ID
  2986.  03h    file transfer complete
  2987.  04h    file transfer complete (segmented)/Presentation Space busy
  2988.  05h    inhibited or keyboard locked
  2989.  06h    data truncated
  2990.  07h    invalid Presentation Space position
  2991.  08h    operation not available
  2992.  09h    system error
  2993.  0Ah    blocking error
  2994.  0Bh    resource not available
  2995.  0Ch    session stopped
  2996.  14h    undefined key combination
  2997.  15h    OIA updated
  2998.  16h    Presentation Space updated
  2999.  17h    both Presentation Space and OIA updated
  3000.  18h    no such field
  3001.  19h    no keystrokes available
  3002.  1Ah    Presentation Space or Operator Information Area changed
  3003.  1Bh    file transfer aborted
  3004.  1Ch    zero-length field
  3005.  1Eh    cursor type invalid
  3006.  1Fh    keystroke overflow
  3007.  20h    another application is already connected
  3008.  22h    message sent to host cancelled
  3009.  23h    transmission from host cancelled
  3010.  24h    lost contact with host
  3011.  25h    function successful
  3012.  26h    function incomplete
  3013.  27h    a DDM session is already connected
  3014.  28h    disconnected, but asynchronous requests still pending
  3015.  29h    buffer already in use
  3016.  2Ah    no matching request found
  3017. 12Dh    invalid function number
  3018. 12Eh    file not found
  3019. 131h    access denied
  3020. 134h    out of memory
  3021. 136h    environment invalid
  3022. 137h    format invalid
  3023. 270Eh (9998) invalid Presentation Space ID
  3024. 270Fh (9999) invalid row or column code
  3025. ---Windows HLLAPI extensions---
  3026. F000h    asynchronous call already in progress
  3027. F001h    invalid asynchronous task ID
  3028. F002h    blocking call cancelled
  3029. F003h    underlying subsystem not started
  3030. F004h    unsupported application version
  3031. --------V-7F0105-----------------------------
  3032. INT 7F - IBM 8514/A Adapter Interface (HDILOAD.EXE)
  3033.     AX = 0105h
  3034. Return: CF set on error
  3035.     CF clear if successful
  3036.         CX:DX -> array of FAR pointers to entry points (see #3126)
  3037. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  3038.       and then performing a FAR call via the appropriate vector of the
  3039.       entry point array, placing the FAR address of the function's
  3040.       parameter block on the top of the stack
  3041. SeeAlso: AX=0104h,AX=0106h,AX=ABCDh
  3042.  
  3043. (Table 3126)
  3044. Values for HDILOAD function number: (do FAR call via entry_points+4*function)
  3045.  08h    HOPEN    Open Adapter (see #3158)
  3046.  09h    HSMX    Set Mix (see #3187)
  3047.  10h    HINT    Interrupt (see #3154)
  3048.  13h    HLDPAL    Load Palette (see #3155)
  3049.  15h    HBBW    BitBLT Write Image Data (see #3141)
  3050.  17h    HBBR    BitBLT Read Image Data (see #3142)
  3051.  18h    HBBCHN    Chained Data Go (see #3140)
  3052.  19h    HBBC    BitBLT Copy Data (see #3139)
  3053.  1Dh    HQMODE    Get Current Mode (see #3164)
  3054.  20h    HRECT    Fill Rectangle (see #3166)
  3055.  22h    HCLOSE    Close Adapter and place in quiescent state (see #3147)
  3056.  30h    HINIT    Initialize State (see #3153)
  3057.  31h    HSYNC    Synchronize Adapter (see #3192)
  3058.  39h    HSPAL    Save Palette (see #3189)
  3059.  3Ah    HRPAL    Restore Palette (see #3169)
  3060.  ???    HSGQ    Set Graphics Quality (see #3178)
  3061.  ???    HSCOORD    Set Coordinate Type (see #3175)
  3062.  ???    HESC    Escape, Terminate Processing (see #3152)
  3063.  ???    HSBCOL    Set Background Color (see #3170)
  3064.  ???    HSBP    Set Bit Plane Controls (see #3171)
  3065.  ???    HSCMP    Set Color Comparison Register (see #3173)
  3066.  ???    HSCOL    Set Color (see #3174)
  3067.  ???    HSHS    Set Scissors (clipping rectangle) (see #3179)
  3068.  ???    HXLATE    Assign Text Color (see #3193)
  3069.  ???    HQMODES    Get Adapter Modes (see #3165)
  3070.  ???    HQDPS    Get Drawing Process State Size (see #3163)
  3071.  ???    HQDFPAL    Get Default Palette (see #3162)
  3072.  ???    HQCOORD    Get Coordinate Type (see #3160)
  3073.  ???    HQCP    Get Current Position (see #3161)
  3074.  ???    HSMODE    Change Mode (see #3185)
  3075.  ???    HLINE    Draw Line at Given Position (see #3156)
  3076.  ???    HCLINE    Draw Line at Current Position (see #3146)
  3077.  ???    HRLINE    Draw Line Relative from Given Position (see #3167)
  3078.  ???    HCRLINE    Draw Line Relative at Current Position (see #3149)
  3079.  ???    HSLT    Set Line Type (see #3182)
  3080.  ???    HSLW    Set Line Width (see #3184)
  3081.  ???    HSLPC    Save Line Pattern Count (see #3181)
  3082.  ???    HRLPC    Restore Line Pattern Count (see #3168)
  3083.  ???    HCBBW    BitBLT Write Image Data at Current Position (see #3143)
  3084.  ???    HBAR    Begin Area (see #3138)
  3085.  ???    HEAR    End Area (see #3150)
  3086.  ???    HSPATT    Set Pattern (see #3190)
  3087.  ???    HSPATTO    Set Pattern Reference Point (see #3191)
  3088.  ???    HEGS    Erase Graphics Screen (see #3151)
  3089.  ???    HSCP    Set Current Position (see #3176)
  3090.  ???    HMRK    Set Marker (see #3157)
  3091.  ???    HCMRK    Set Marker at Current Position (see #3148)
  3092.  ???    HSMARK    Set Marker Shape (see #3186)
  3093.  ???    HSCS    Set Character Set (see #3177)
  3094.  ???    HCHST    Write Character String at Given Position (see #3145)
  3095.  ???    HCCHST    Write Character String at Current Position (see #3144)
  3096.  ???    HSCELL    Set Cell Size for Alphanumeric Text (see #3172)
  3097.  ???    ABLOCKMFI Write Character/Attribute Block MFI (see #3129)
  3098.  ???    ABLOCKCGA Write Character Block CGA (see #3127)
  3099.  ???    AERASE    Erase Rectangle (see #3132)
  3100.  ???    ASCROLL Scroll Rectangle (see #3133)
  3101.  ???    ACURSOR    Set Alphanumerics Cursor Position (see #3131)
  3102.  ???    ASCUR    Set Alphanumeric Cursor Shape (see #3134)
  3103.  ???    ASFONT    Set Font (see #3135)
  3104.  ???    AXLATE    Assign Alphanumeric Color (see #3137)
  3105.  
  3106. Format of ABLOCKCGA parameter block:
  3107. Offset    Size    Description    (Table 3127)
  3108.  00h    WORD    000Ah (length of following data)
  3109.  02h    WORD    top-left coordinate of character block
  3110.  04h    WORD    width of block
  3111.  06h    DWORD    -> block of WORDs describing characters (see #3128)
  3112.  0Ah    BYTE    length of block in characters
  3113.  0Bh    BYTE    highlight attribute
  3114.         bit 4: transparent background
  3115.         bit 5: overstrike
  3116.         bit 6: reverse video
  3117.         bit 7: underscore
  3118. SeeAlso: #3129
  3119.  
  3120. Bitfields for one character in ABLOCKCGA character block:
  3121. Bit(s)    Description    (Table 3128)
  3122.  3-0    foreground attribute
  3123.  7-4    background attribute
  3124.  15-8    character code
  3125.  
  3126. Format of ABLOCKMFI parameter block:
  3127. Offset    Size    Description    (Table 3129)
  3128.  00h    WORD    0009h (length of following data)
  3129.  02h    WORD    top-left coordinate of character block
  3130.  04h    WORD    width of block
  3131.  06h    DWORD    -> block of DWORDs describing characters (see #3130)
  3132.  0Ah    BYTE    length of block in characters
  3133. SeeAlso: #3127
  3134.  
  3135. Bitfields for one character in ABLOCKMFI character block:
  3136. Bit(s)    Description    (Table 3130)
  3137.  7-0    reserved
  3138.  9-8    low two bits of font number
  3139.  12    transparent background
  3140.  13    overstrike
  3141.  14    reverse video
  3142.  15    underscore
  3143.  19-16    foreground color attribute
  3144.  23-20    background color attribute
  3145.  31-24    character code
  3146.  
  3147. Format of ACURSOR parameter block:
  3148. Offset    Size    Description    (Table 3131)
  3149.  00h    WORD    0002h (length of following data)
  3150.  02h    BYTE    column (0-based)
  3151.  03h    BYTE    row (0-based)
  3152. SeeAlso: #3134
  3153.  
  3154. Format of AERASE parameter block:
  3155. Offset    Size    Description    (Table 3132)
  3156.  00h    WORD    0005h (length of following data)
  3157.  02h    BYTE    left-most column (0-based)
  3158.  03h    BYTE    top-most row (0-based)
  3159.  04h    BYTE    rectangle's width in character cells
  3160.  05h    BYTE    rectangle's height in character cells
  3161.  06h    BYTE    background color (bits 7-4)
  3162. SeeAlso: #3133
  3163.  
  3164. Format of ASCROLL parameter block:
  3165. Offset    Size    Description    (Table 3133)
  3166.  00h    WORD    0006h (length of following data)
  3167.  02h    BYTE    left-most column (0-based) of source
  3168.  03h    BYTE    top-most row (0-based) of source
  3169.  04h    BYTE    rectangle's width in character cells
  3170.  05h    BYTE    rectangle's height in character cells
  3171.  06h    BYTE    left-most column (0-based) of destination
  3172.  07h    BYTE    top-most row (0-based) of destination
  3173. SeeAlso: #3132
  3174.  
  3175. Format of ASCUR parameter block:
  3176. Offset    Size    Description    (Table 3134)
  3177.  00h    WORD    0003h (length of following data)
  3178.  02h    BYTE    cursor start line (00h = top of cell, FFh = keep current shape)
  3179.  03h    BYTE    cursor stop line
  3180.  04h    BYTE    cursor attribute
  3181.         00h normal
  3182.         01h hidden
  3183.         02h left-arrow (requires start = 2 and stop = bottom of cell)
  3184.         03h right-arrow (requires start = 2 and stop = bottom of cell)
  3185. Notes:    no cursor is shown if the start line is greater than the stop line
  3186.     the alphanumeric cursor is hidden after each mode change
  3187. SeeAlso: #3131,INT 10/AH=01h
  3188.  
  3189. Format of ASFONT parameter block:
  3190. Offset    Size    Description    (Table 3135)
  3191.  00h    WORD    0005h (length of following data)
  3192.  02h    BYTE    font number (0-3)
  3193.  03h    DWORD    -> character set definition block (see #3136)
  3194.  
  3195. Format of 8514/A character set definition block:
  3196. Offset    Size    Description    (Table 3136)
  3197.  00h    BYTE    reserved
  3198.  01h    BYTE    type of character set
  3199.         00h bitmapped, 01h&02h reserved, 03h short-stroke font
  3200.  02h    BYTE    reserved
  3201.  03h    DWORD    reserved
  3202.  07h    BYTE    cell width in pixels
  3203.  08h    BYTE    cell height in pixels
  3204.  09h    BYTE    reserved
  3205.  0Ah    WORD    cell size in bytes
  3206.  0Ch    WORD    flags
  3207.         bit 15: reserved (0)
  3208.         bit 14: color bitmap
  3209.         bit 13: proportional spacing
  3210.  0Eh    DWORD    -> index table
  3211.  12h    DWORD    -> character width table
  3212.  16h    BYTE    initial code point
  3213.  17h    BYTE    final code point
  3214.  18h    DWORD    -> character definition table
  3215.  1Ch    WORD    reserved
  3216.  1Eh    DWORD    -> second character definition table
  3217.  22h    WORD    reserved
  3218.  24h    DWORD    -> third character definition table
  3219.  
  3220. Format of AXLATE parameter block:
  3221. Offset    Size    Description    (Table 3137)
  3222.  00h    WORD    0080h (length of following data)
  3223.  02h 64 BYTEs    character foreground translation table
  3224.  42h 64 BYTEs    character background translation table
  3225.  
  3226. Format of HBAR parameter block:
  3227. Offset    Size    Description    (Table 3138)
  3228.  00h    WORD    0000h (no data following)
  3229. SeeAlso: #3150
  3230.  
  3231. Format of HBBC parameter block:
  3232. Offset    Size    Description    (Table 3139)
  3233.  00h    WORD    0010h (length of following data)
  3234.  02h    WORD    data format
  3235.         0000h across-the-plane copy (color expansion)
  3236.         0008h through-the-plane copy
  3237.  04h    WORD    data rectangle's width
  3238.  06h    WORD    data rectangle's height
  3239.  08h    BYTE    source bit plane number (across-the-plane copies only)
  3240.  09h    BYTE    reserved
  3241.  0Ah  2 WORDs    X,Y coordinates of source's upper-left corner in display memory
  3242.  0Eh  2 WORDs    X,Y coordinates of destination's upper-left corner in
  3243.           display memory
  3244. Note:    copies data from one location in video memory to another
  3245. SeeAlso: #3140
  3246.  
  3247. Format of HBBCHN parameter block:
  3248. Offset    Size    Description    (Table 3140)
  3249.  00h    WORD    0006h (length of following data)
  3250.  02h    DWORD    -> data buffer in system memory
  3251.  06h    WORD    number of bytes to transfer
  3252. Note:    this function performs the actual data transfer for a bitBLT set up
  3253.       with HBBR, HBBW, or HCBBW
  3254. SeeAlso: #3139,#3141,#3142,#3143
  3255.  
  3256. Format of HBBR parameter block:
  3257. Offset    Size    Description    (Table 3141)
  3258.  00h    WORD    000Ch or 0014h (length of following data)
  3259.  02h    WORD    data format
  3260.         0000h across-the-plane copy (color expansion)
  3261.         0008h through-the-plane copy
  3262.  04h    WORD    data rectangle's width
  3263.  06h    WORD    data rectangle's height
  3264.  08h    BYTE    source bit plane number
  3265.  09h    BYTE    reserved
  3266.  0Ah  2 WORDs    X,Y coordinates of destination's upper-left corner in
  3267.           display memory
  3268. ---optional---
  3269.  0Eh    WORD    sub-rectangle left margin in pixels
  3270.  10h    WORD    sub-rectangle top margin in pixels
  3271.  12h    WORD    sub-rectangle width
  3272.  14h    WORD    sub-rectangle height
  3273. SeeAlso: #3140,#3141,#3143
  3274.  
  3275. Format of HBBW parameter block:
  3276. Offset    Size    Description    (Table 3142)
  3277.  00h    WORD    000Ah or 0012h (length of following data)
  3278.  02h    WORD    data format
  3279.         0000h across-the-plane copy (color expansion)
  3280.         0008h through-the-plane copy
  3281.  04h    WORD    data rectangle's width
  3282.  06h    WORD    data rectangle's height
  3283.  08h  2 WORDs    X,Y coordinates of destination in display memory
  3284. ---optional---
  3285.  0Ch    WORD    sub-rectangle left margin in pixels
  3286.  0Eh    WORD    sub-rectangle top margin in pixels
  3287.  10h    WORD    sub-rectangle width
  3288.  12h    WORD    sub-rectangle height
  3289. SeeAlso: #3140,#3142,#3143
  3290.  
  3291. Format of HCBBW parameter block:
  3292. Offset    Size    Description    (Table 3143)
  3293.  00h    WORD    0006h or 000Eh (length of following data)
  3294.  02h    WORD    data format
  3295.         0000h across-the-plane copy (color expansion)
  3296.         0008h through-the-plane copy
  3297.  04h    WORD    data rectangle's width
  3298.  06h    WORD    data rectangle's height
  3299. ---optional---
  3300.  08h    WORD    sub-rectangle left margin in pixels
  3301.  0Ah    WORD    sub-rectangle top margin in pixels
  3302.  0Ch    WORD    sub-rectangle width
  3303.  0Eh    WORD    sub-rectangle height
  3304. SeeAlso: #3140,#3141,#3142
  3305.  
  3306. Format of HCCHST parameter block:
  3307. Offset    Size    Description    (Table 3144)
  3308.  00h    WORD    length of following data
  3309.  02h  N BYTEs    ASCII string to display (length given by 'length' field above)
  3310. SeeAlso: #3145
  3311.  
  3312. Format of HCHST parameter block:
  3313. Offset    Size    Description    (Table 3145)
  3314.  00h    WORD    length of following data
  3315.  02h  2 WORDs    X,Y of left-bottom corner of string on screen
  3316.  06h  N BYTEs    ASCII string to display (length given by 'length' field above)
  3317. SeeAlso: #3144
  3318.  
  3319. Format of HCLINE parameter block:
  3320. Offset    Size    Description    (Table 3146)
  3321.  00h    WORD    length of following data (multiple of 4)
  3322.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  3323. Notes:    the first line segment is drawn beginning at the current position
  3324.     on completion, the current position is set to the last point drawn
  3325. SeeAlso: #3156,#3167,#3149
  3326.  
  3327. Format of HCLOSE parameter block:
  3328. Offset    Size    Description    (Table 3147)
  3329.  00h    WORD    0001h (length of following data)
  3330.  01h    BYTE    (ret) return code
  3331. SeeAlso: #3158
  3332.  
  3333. Format of HCMRK parameter block:
  3334. Offset    Size    Description    (Table 3148)
  3335.  00h    WORD    length of following data
  3336.  02h 2N WORDs    X,Y of N points
  3337. Note:    draws N+1 marker symbols, the first one at the current position
  3338. SeeAlso: #3157
  3339.  
  3340. Format of HCRLINE parameter block:
  3341. Offset    Size    Description    (Table 3149)
  3342.  00h    WORD    length of following data (multiple of 4)
  3343.  02h 2N WORDs    X,Y coordinates relative to the position of the previous point
  3344.           (current position for first point) for each of N points in
  3345.           polyline
  3346. Notes:    the first line segment is drawn beginning at the current position
  3347.     on completion, the current position is set to the last point drawn
  3348. SeeAlso: #3156,#3146,#3167
  3349.  
  3350. Format of HEAR parameter block:
  3351. Offset    Size    Description    (Table 3150)
  3352.  00h    WORD    0001h (length of following data)
  3353.  02h    BYTE    area definition flags
  3354.         bits 7-6: End Area type
  3355.             00 complete, perform fill
  3356.             01 suspend definition
  3357.             10 complete, but don't fill
  3358. SeeAlso: #3138
  3359.  
  3360. Format of HEGS parameter block:
  3361. Offset    Size    Description    (Table 3151)
  3362.  00h    WORD    0000h (no data following)
  3363.  
  3364. Format of HESC parameter block:
  3365. Offset    Size    Description    (Table 3152)
  3366.  00h    WORD    0000h (no data following)
  3367.  
  3368. Format of HINIT parameter block:
  3369. Offset    Size    Description    (Table 3153)
  3370.  00h    WORD    0002h (length of following data)
  3371.  02h    WORD    segment of task buffer
  3372. SeeAlso: #3192
  3373.  
  3374. Format of HINT parameter block:
  3375. Offset    Size    Description    (Table 3154)
  3376.  00h    WORD    0004h (length of following data)
  3377.  02h    DWORD    interrupt/event identifier
  3378.         bit 31: vertical blanking
  3379.  
  3380. Format of HLDPAL parameter block:
  3381. Offset    Size    Description    (Table 3155)
  3382.  00h    WORD    000Ah (length of following data)
  3383.  02h    BYTE    palette ID (00h = user, 01h = default)
  3384.  03h    BYTE    reserved
  3385.  04h    WORD    number of first palette entry
  3386.  06h    WORD    number of entries
  3387.  08h    DWORD    -> palette entries
  3388. SeeAlso: #3189
  3389.  
  3390. Format of HLINE parameter block:
  3391. Offset    Size    Description    (Table 3156)
  3392.  00h    WORD    length of following data (multiple of 4)
  3393.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  3394. Note:    on completion, the current position is set to the last point drawn
  3395. SeeAlso: #3146,#3167,#3149
  3396.  
  3397. Format of HMRK parameter block:
  3398. Offset    Size    Description    (Table 3157)
  3399.  00h    WORD    length of following data (multiple of 4)
  3400.  02h 2N WORDs    X,Y for N points
  3401. SeeAlso: #3148
  3402.  
  3403. Format of HOPEN parameter block:
  3404. Offset    Size    Description    (Table 3158)
  3405.  00h    WORD    0003h (length of following data)
  3406.  01h    BYTE    initialization flags
  3407.         bit 6: don't load default palette
  3408.         bit 7: clear bitplanes
  3409.  02h    BYTE    mode type (see #3159)
  3410.  03h    BYTE    (ret) return code
  3411.         bit 7: no adapter (hardware mismatch)
  3412. SeeAlso: #3147
  3413.  
  3414. (Table 3159)
  3415. Values for 8514/A display mode:
  3416.  0000h    12x20 characters, 1024x768
  3417.  0001h    8x14 characters, 640x480
  3418.  0002h    8x14 characters, 1024x768
  3419.  0003h    7x15 characters, 1024x768
  3420.  
  3421. Format of HQCOORD parameter block:
  3422. Offset    Size    Description    (Table 3160)
  3423.  00h    WORD    0004h (length of following data)
  3424.  02h    BYTE    (ret) coordinate format
  3425.         bits 7-4: bytes per coordinate
  3426.         bits 3-0: fraction bytes in coordinate
  3427.  03h    BYTE    (ret) relative coordinate format
  3428.         bits 7-4: bytes per coordinate
  3429.         bits 3-0: fraction bytes in coordinate
  3430.  04h    BYTE    (ret) number of dimensions (2-4)
  3431.  05h    BYTE    (ret) test results
  3432.         bit 7: coordinate format not supported
  3433.         bit 6: relative coordinate format not supported
  3434.         bit 5: specified dimension not supported
  3435.  
  3436. Format of HQCP parameter block:
  3437. Offset    Size    Description    (Table 3161)
  3438.  00h    WORD    0004h (length of following data)
  3439.  02h    WORD    (ret) current X position
  3440.  04h    WORD    (ret) current Y position
  3441.  
  3442. Format of HQDFPAL parameter block:
  3443. Offset    Size    Description    (Table 3162)
  3444.  00h    WORD    0040h (length of following data)
  3445.  02h 16    DWORDs    (ret) color index values
  3446. Note:    the default palette is set to match the default EGA/VGA 16-color
  3447.       palettes
  3448.  
  3449. Format of HQDPS parameter block:
  3450. Offset    Size    Description    (Table 3163)
  3451.  00h    WORD    0006h (length of following data)
  3452.  02h    WORD    (ret) size of data buffer in bytes
  3453.  04h    WORD    (ret) stack size in bytes
  3454.  06h    WORD    (ret) size of palette save buffer in bytes
  3455.  
  3456. Format of HQMODE parameter block:
  3457. Offset    Size    Description    (Table 3164)
  3458.  00h    WORD    0012h (length of following data)
  3459.  02h    BYTE    current video mode (see #3159)
  3460.  03h    WORD    driver version
  3461.         bit 6: 80286/8086 CPU
  3462.         bit 5: 8 bit planes instead of 4 planes
  3463.         bits 4-0: hardware release number
  3464.  05h    BYTE    adapter type
  3465.         03h 8514/A
  3466.         04h XGA
  3467.  06h    BYTE    reserved (display type)
  3468.  07h    BYTE    character cell width
  3469.  08h    BYTE    character cell height
  3470.  09h    BYTE    number of bit planes
  3471.  0Ah    WORD    screen width (pixels)
  3472.  0Ch    WORD    screen height (pixels)
  3473.  0Eh    WORD    horizontal resolution (pixels/inch)
  3474.  10h    WORD    vertical resolution (pixels/inch)
  3475.  12h    BYTE    flag: 00h = monochrome, FFh = color
  3476.  13h    BYTE    intensity levels
  3477. SeeAlso: #3165
  3478.  
  3479. Format of HQMODES parameter block:
  3480. Offset    Size    Description    (Table 3165)
  3481.  00h    WORD    0021h (length of following data)
  3482.  02h    BYTE    (ret) adapter type
  3483.  03h 32 BYTEs    (ret) available display modes (FFh byte marks end of data)
  3484. SeeAlso: #3164
  3485.  
  3486. Format of HRECT parameter block:
  3487. Offset    Size    Description    (Table 3166)
  3488.  00h    WORD    0008h (legth of following data)
  3489.  02h  2 WORDs    X,Y coordinates of top left corner or rectangle
  3490.  06h    WORD    rectangle's width
  3491.  08h    WORD    rectangle's height
  3492. Note:    the rectangle is filled using the current pattern, color, and mix
  3493.  
  3494. Format of HRLINE parameter block:
  3495. Offset    Size    Description    (Table 3167)
  3496.  00h    WORD    length of following data (multiple of 4)
  3497.  02h  2 WORDs    X,Y coordinates of starting point
  3498.  06h 2N WORDs    X,Y coordinates relative to the position of the previous point
  3499.           for each of N points in polyline
  3500. Note:    on completion, the current position is set to the last point drawn
  3501. SeeAlso: #3156,#3146,#3149
  3502.  
  3503. Format of HRLPC parameter block:
  3504. Offset    Size    Description    (Table 3168)
  3505.  00h    WORD    0000h (no data following)
  3506. Note:    used for continuity of lines crossing scissors boundaries
  3507. SeeAlso: #3181
  3508.  
  3509. Format of HRPAL parameter block:
  3510. Offset    Size    Description    (Table 3169)
  3511.  00h    WORD    0300h (length of following data)
  3512.  02h 768 BYTEs    buffer containing previously-saved palette table
  3513. SeeAlso: #3189
  3514.  
  3515. Format of HSBCOL parameter block:
  3516. Offset    Size    Description    (Table 3170)
  3517.  00h    WORD    0004h (length of following data)
  3518.  02h    DWORD    color index for new background color
  3519. SeeAlso: #3174
  3520.  
  3521. Format of HSBP parameter block:
  3522. Offset    Size    Description    (Table 3171)
  3523.  00h    WORD    000Ch (length of following data)
  3524.  02h    DWORD    bitmask for graphics updates
  3525.  06h    DWORD    bitmask for alphanumeric updates
  3526.  0Ah    DWORD    display bitmask
  3527.  
  3528. Format of HSCELL parameter block:
  3529. Offset    Size    Description    (Table 3172)
  3530.  00h
  3531.  
  3532. Format of HSCMP parameter block:
  3533. Offset    Size    Description    (Table 3173)
  3534.  00h    WORD    0005h (length of following data)
  3535.  02h    DWORD    comparison color
  3536.  06h    BYTE    logical operation
  3537.         00h True
  3538.         01h pel > testcolor
  3539.         02h pel == testcolor
  3540.         03h pel < testcolor
  3541.         04h False
  3542.         05h pel >= testcolor
  3543.         06h pel <> testcolor
  3544.         07h pel <= testcolor
  3545.  
  3546. Format of HSCOL parameter block:
  3547. Offset    Size    Description    (Table 3174)
  3548.  00h    WORD    0004h (length of following data)
  3549.  02h    DWORD    color index for new foreground color
  3550. SeeAlso: #3170
  3551.  
  3552. Format of HSCOORD parameter block:
  3553. Offset    Size    Description    (Table 3175)
  3554.  00h    WORD    0003h (length of following data)
  3555.  02h    BYTE    coordinate format
  3556.         bits 7-4: bytes per coordinate
  3557.         bits 3-0: fraction bytes in coordinate
  3558.  03h    BYTE    relative coordinates format
  3559.         bits 7-4: bytes per coordinate
  3560.         bits 3-0: fraction bytes in coordinate
  3561.  04h    BYTE    number of dimensions (2-4)
  3562.  
  3563. Format of HSCP parameter block:
  3564. Offset    Size    Description    (Table 3176)
  3565.  00h    WORD    0004h (length of following data)
  3566.  02h  2 WORDs    X,Y or coordinate for new current position
  3567.  
  3568. Format of HSCS parameter block:
  3569. Offset    Size    Description    (Table 3177)
  3570.  00h    WORD    0004h (length of following data)
  3571.  02h    DWORD    -> character set definition
  3572.  
  3573. Format of HSGQ parameter block:
  3574. Offset    Size    Description    (Table 3178)
  3575.  00h    WORD    0002h (length of following data)
  3576.  02h    WORD    quality settings (see #3180)
  3577.  
  3578. Format of HSHS parameter block:
  3579. Offset    Size    Description    (Table 3179)
  3580.  00h    WORD    0008h (length of following data)
  3581.  02h    WORD    left edge of clipping rectangle (-2048 to +6143)
  3582.  04h    WORD    right edge
  3583.  06h    WORD    top edge
  3584.  08h    WORD    bottom edget
  3585.  
  3586. Bitfields for 8514/A quality settings:
  3587. Bit(s)    Description    (Table 3180)
  3588.  15    reserved
  3589.  14    high precision
  3590.  13    reserved
  3591.  12-11    pel code
  3592.     00 not drawn
  3593.     01 drawn
  3594.     02 conditional on overpainting/mixes
  3595.  10    don't close areas to be filed
  3596.  9-0    reserved
  3597.  
  3598. Format of HSLPC parameter block:
  3599. Offset    Size    Description    (Table 3181)
  3600.  00h    WORD    0000h (no data following)
  3601. Note:    used for continuity of lines crossing scissors boundaries
  3602. SeeAlso: #3168
  3603.  
  3604. Format of HSLT parameter block:
  3605. Offset    Size    Description    (Table 3182)
  3606.  00h    WORD    0006h (length of following data)
  3607.  02h    BYTE    line type (see #3183)
  3608.  03h    BYTE    reserved
  3609.  04h    DWORD    -> user line-type definition (if user type)
  3610. SeeAlso: #3184
  3611.  
  3612. (Table 3183)
  3613. Values for 8514/A line type:
  3614.  00h    user line type
  3615.  01h    dotted
  3616.  02h    short dashes
  3617.  03h    dash-dot
  3618.  04h    double dotted
  3619.  05h    dashed
  3620.  06h    dash double dot
  3621.  07h    solid
  3622.  08h    invisible
  3623. SeeAlso: #3182
  3624.  
  3625. Format of HSLW parameter block:
  3626. Offset    Size    Description    (Table 3184)
  3627.  00h    WORD    0001h (length of following data)
  3628.  02h    BYTE    width of line in pixels
  3629. SeeAlso: #3182
  3630.  
  3631. Format of HSMODE parameter block:
  3632. Offset    Size    Description    (Table 3185)
  3633.  00h    WORD    0001h (length of following data)
  3634.  02h    BYTE    new display mode number (see #3159)
  3635.  
  3636. Format of HSMRK paramter block:
  3637. Offset    Size    Description    (Table 3186)
  3638.  00h    WORD    000Eh (length of following data)
  3639.  02h    BYTE    cell width
  3640.  03h    BYTE    cell height
  3641.  04h    BYTE    flags
  3642.  05h    BYTE    reserved
  3643.  06h    WORD    length of marker symbol
  3644.  08h    DWORD    -> image definition data
  3645.  0Ch    DWORD    -> color definition data
  3646. SeeAlso: #3190
  3647.  
  3648. Format of HSMX parameter block:
  3649. Offset    Size    Description    (Table 3187)
  3650.  00h    WORD    0002h (length of following data)
  3651.  02h    BYTE    foreground mix (see #3188)
  3652.  03h    BYTE    background mix (see #3188)
  3653.  
  3654. (Table 3188)
  3655. Values for 8514/A mix:
  3656.  00h    retain previous mix
  3657.  01h    source OR destination
  3658.  02h    source
  3659.  04h    source XOR destination
  3660.  05h    leave as-is
  3661.  06h    max(source,destination)
  3662.  07h    min(source,destination)
  3663.  08h    source+destination (clipped)
  3664.  09h    destination-source (clipped to zero)
  3665.  0Ah    source-destination (clipped to zero)
  3666.  0Bh    average source and destination
  3667.  10h    zero destination
  3668.  11h    source AND destination
  3669.  12h    source AND NOT destination
  3670.  13h    source
  3671.  14h    NOT source AND destination
  3672.  15h    leave as-is
  3673.  16h    source XOR destination
  3674.  17h    source OR destination
  3675.  18h    NOT source AND NOT destination
  3676.  19h    NOT (source XOR destination)
  3677.  1Ah    NOT destination
  3678.  1Bh    source OR NOT destination
  3679.  1Ch    NOT source
  3680.  1Dh    NOT source OR destination
  3681.  1Eh    NOT source OR NOT destination
  3682.  1Fh    set all bits of destination
  3683.  
  3684. Format of HSPAL parameter block:
  3685. Offset    Size    Description    (Table 3189)
  3686.  00h    WORD    0300h (length of following data)
  3687.  02h 768 BYTEs    buffer for palette table
  3688. SeeAlso: #3155,#3169
  3689.  
  3690. Format of HSPATT parameter block:
  3691. Offset    Size    Description    (Table 3190)
  3692.  00h    WORD    000Eh (length of following data)
  3693.  02h    BYTE    cell width
  3694.  03h    BYTE    cell height
  3695.  04h    BYTE    flags
  3696.  05h    BYTE    reserved
  3697.  06h    WORD    length of marker symbol
  3698.  08h    DWORD    -> image definition data
  3699.  0Ch    DWORD    -> color definition data
  3700. SeeAlso: #3186,#3191
  3701.  
  3702. Format of HSPATTO parameter block:
  3703. Offset    Size    Description    (Table 3191)
  3704.  00h    WORD    0004h (length of following data)
  3705.  02h  2 WORDs    X,Y of pattern reference point (origin)
  3706. SeeAlso: #3190
  3707.  
  3708. Format of HSYNC parameter block:
  3709. Offset    Size    Description    (Table 3192)
  3710.  00h    WORD    0002h (length of following data)
  3711.  02h    WORD    segment of task state buffer
  3712. SeeAlso: #3153
  3713.  
  3714. Format of HXLATE parameter block:
  3715. Offset    Size    Description    (Table 3193)
  3716.  00h    WORD    0020h (length of following data)
  3717.  02h 32 BYTEs    color index table
  3718. --------V-7F0105-----------------------------
  3719. INT 7F - IBM XGA Adapter Interface (XGAAIDOS.SYS)
  3720.     AX = 0105h
  3721. Return: CF set on error
  3722.     CF clear if successful
  3723.         CX:DX -> array of FAR pointers to entry points (see #3126)
  3724. Note:    this API is a superset of the 8514/A Adapter Interface
  3725.       (see AX=0105h"HDILOAD")
  3726. --------V-7F0106-----------------------------
  3727. INT 7F - HDILOAD Mach32 Adapter Interface - UNINSTALL
  3728.     AX = 0106h
  3729. Return: AX = 0105h if successfully unloaded
  3730. SeeAlso: AX=0105h
  3731. --------N-7F02-------------------------------
  3732. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  3733.     AH = 02h
  3734.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  3735. Return: AL = status (see #3120)
  3736.     AH = semaphore owner if status=02h
  3737. SeeAlso: AH=00h,AH=01h,AH=42h
  3738. --------T-7F02-------------------------------
  3739. INT 7F - MultiLink Advanced v1.0+ - RELEASE CPU
  3740.     AH = 02h
  3741. Return: ???
  3742. Desc:    yields CPU to other tasks
  3743. SeeAlso: AH=00h"MultiLink",AH=09h"MultiLink",INT 15/AX=1000h
  3744. --------N-7F02-------------------------------
  3745. INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME
  3746.     AH = 02h
  3747.     AL = stream number (01h-40h)
  3748.     CX = length of frame
  3749.     ES:SI -> frame to be sent
  3750. SeeAlso: AH=00h"G8BPQ",AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ"
  3751. --------f-7F0200-----------------------------
  3752. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  3753.     AX = 0200h
  3754. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  3755. --------N-7F03-------------------------------
  3756. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  3757.     AH = 03h
  3758. Return: AL = user number
  3759.     AH = machine number (MW386)
  3760. Note:    this function call is the recommended method for a CPU-bound process to
  3761.       prevent its priority from being lowered
  3762. SeeAlso: AH=04h,AH=05h,AH=A1h
  3763. --------N-7F03-------------------------------
  3764. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME
  3765.     AH = 03h
  3766.     AL = stream number (01h-40h)
  3767.     ES:DI -> buffer for frame (must be large enough for a full frame; 350
  3768.           bytes is usually sufficient)
  3769. Return: BX = number of pending frames (0000h if returned frame was last avail)
  3770.     CX = length of received frame
  3771. SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ"
  3772. --------N-7F04-------------------------------
  3773. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  3774.     AH = 04h
  3775. Return: AL = total number of users on currrent machine (MW386)
  3776.     AL = number of slaves on system (NTNX)
  3777. SeeAlso: AH=03h
  3778. --------N-7F04-------------------------------
  3779. INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS
  3780.     AH = 04h
  3781.     AL = stream number (01h-40h)
  3782. Return: CX = state (0000h disconnected, 0001h connected)
  3783.     DX = delta state (0000h no change, 0001h changed since last check)
  3784. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=05h"G8BPQ"
  3785. --------N-7F05-------------------------------
  3786. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  3787.     AH = 05h
  3788.     AL = function
  3789.         00h lock system (disable slave services)
  3790.         01h unlock system
  3791.         02h enable spooler
  3792.         03h disable spooler
  3793.         04h enable slave timer update
  3794.         05h disable slave timer update
  3795.         06h enable form feeds
  3796.         07h disable form feeds
  3797. SeeAlso: INT 17/AH=A4h
  3798. --------N-7F05-------------------------------
  3799. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  3800.     AH = 05h
  3801.     DX:DI -> buffer for user information record (see #3194)
  3802. Notes:    MW386 provides this function for backward compatibility only, and sets
  3803.       many of the fields to zero because they are meaningless under MW386
  3804.     this function has no effect when called by the host (user 0)
  3805. SeeAlso: AH=03h
  3806.  
  3807. Format of Alloy user information record:
  3808. Offset    Size    Description    (Table 3194)
  3809.  00h    WORD    segment of video RAM
  3810.  02h    WORD    segment of secondary copy of video RAM
  3811.  04h    WORD    offset of screen update flag (see INT 10/AH=8Bh)
  3812.         flag nonzero if update needed
  3813.  06h    WORD    video NMI enable port
  3814.         (not used by MW386, set to 0000h)
  3815.  08h    WORD    video NMI disable port
  3816.         (not used by MW386, set to 0000h)
  3817.  0Ah    BYTE    processor type
  3818.         00h 8088
  3819.         01h V20
  3820.         02h 8086
  3821.         03h V30
  3822.         06h 80386
  3823.  0Bh    WORD    multitasking flag (00h = single tasking, 01h = multitasking)
  3824.         (not used by MW386, set to 0000h)
  3825.  0Dh    WORD    offset of terminal driver
  3826.         (not used by MW386, set to 0000h)
  3827.  0Fh    BYTE    port for console I/O
  3828.         (not used by MW386, set to 0000h)
  3829.  10h    WORD    offset of processor communication busy flag
  3830.         bit 7 set when slave communicating with host
  3831.  12h    WORD    pointer to FAR NX system call
  3832.         (not used by MW386, set to 0000h)
  3833.  14h    WORD    offset of 16-byte user configuration record (see AH=38h)
  3834.  16h    WORD    offset of command/status word
  3835.  18h    WORD    offset of screen valid flag (see INT 10/AH=93h)
  3836.         nonzero if screen must be repainted
  3837.  1Ah    WORD    offset of screen repaint flag
  3838.  1Ch    WORD    pointer to NEAR NX system call
  3839.         (not used by MW386, set to 0000h)
  3840.  1Eh    WORD    offset for intercept flags
  3841.         (not used by MW386, set to 0000h)
  3842.         intercept flag = FFh if MS-DOS intercepts should be disabled
  3843.  20h    WORD    offset of terminal lock flag (see INT 10/AH=92h)
  3844.         lock flag = FFh if backgrnd screen updates should be suspended
  3845.  22h 26 BYTEs    reserved
  3846. --------N-7F05-------------------------------
  3847. INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE
  3848.     AH = 05h
  3849.     AL = stream number (01h-40h)
  3850. Note:    this function must be called in order to receive a report of another
  3851.       status change
  3852. SeeAlso: AH=00h"G8BPQ",AH=04h"G8BPQ"
  3853. --------N-7F06-------------------------------
  3854. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  3855.     AH = 06h
  3856.     AL = drive number (1=A:, 2=B:, etc)
  3857.     ES:DI -> drive info record (see #3195)
  3858. Return: AX = status
  3859.         0000h successful
  3860.         ES:DI buffer filled
  3861.         0001h not shared drive
  3862.  
  3863. Format of Alloy drive info record:
  3864. Offset    Size    Description    (Table 3195)
  3865.  00h    WORD    segment of drive IO-REQUEST structure (MS-DOS DPB)
  3866.  02h    WORD    segment of allocation map (owner table)
  3867.         one byte per FAT entry, containing user ID owning that entry
  3868.  04h    WORD    segment of master FAT for drive (copy of FAT on disk)
  3869.  06h    WORD    pointer to configuration file
  3870.  08h    WORD    total number of clusters
  3871.  0Ah    WORD    bytes per sector
  3872.  0Ch    WORD    sectors per cluster
  3873.  0Eh    BYTE    FAT type (0Ch = 12-bit, 10h = 16-bit)
  3874. --------N-7F06-------------------------------
  3875. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  3876.     AH = 06h
  3877.     DL = drive number (1=A:,2=B:,etc)
  3878.     CX = number of clusters to allocate
  3879. Return: AH = status
  3880.         00h successful
  3881.         CX = number of clusters still free
  3882.         10h invalid shared drive request
  3883.         CL = first and second shared drives
  3884.         11h invalid cluster count (must be 01h-FFh)
  3885. --------N-7F06-------------------------------
  3886. INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL
  3887.     AH = 06h
  3888.     AL = stream number (01h-40h)
  3889.     CX = subfunction
  3890.         0000h connect to node
  3891.         DL bit 0: use BBS callsign instead of Node Call
  3892.         0001h connect to node
  3893.         use BBS Call if APPLMASK=1
  3894.         0002h disconnect
  3895.         0003h return user to node
  3896. SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ"
  3897. --------N-7F07-------------------------------
  3898. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  3899.     AH = 07h
  3900. Return: ES:DI -> shared drive list (see #3196)
  3901. Note:    MW386 considers all fixed disks to be shared drives; only C and D will
  3902.       be returned as shared
  3903.  
  3904. Format of Alloy shared drive list:
  3905. Offset    Size    Description    (Table 3196)
  3906.  00h    BYTE    string length
  3907.  01h    BYTE    number of shared drives
  3908.  02h  N BYTEs    one byte per shared drive
  3909. --------N-7F07-------------------------------
  3910. INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM
  3911.     AH = 07h
  3912.     AL = stream number (01h-40h)
  3913. Return: BX = number of pending receive frames
  3914.     CX = number of unacknowledged sent frames
  3915.     DX = number of buffers available
  3916. SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ"
  3917. --------N-7F08-------------------------------
  3918. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  3919.     AH = 08h
  3920.     CL = function
  3921.         00h get original interrupt vector
  3922.         01h get Network Executive interrrupt
  3923.     AL = interrupt number
  3924.     DX:SI -> DWORD to hold interrupt vector
  3925. Return: AL = status
  3926.         00h successful
  3927.         01h interrupt vector not used by network executive
  3928.         02h invalid subfunction
  3929. Note:    the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  3930.       1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  3931. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  3932. --------N-7F08--CL02-------------------------
  3933. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  3934.     AH = 08h
  3935.     CL = 02h
  3936.     DX = timeout in seconds
  3937. Return: AL = status
  3938.         00h successful
  3939.         02h invalid subfunction
  3940. --------N-7F08-------------------------------
  3941. INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION
  3942.     AH = 08h
  3943.     AL = stream number (01h-40h)
  3944. Return: ES:DI -> 10-byte buffer containing blank-padded callsign
  3945.     ---v4.05+ ---
  3946.     AL = radio port to which channel is connected (level 2)
  3947.     AH = session type (see #3197)
  3948.     BX = L2 paclen for session
  3949.     CX = maximum frame size
  3950.     DX = L4 window size or 0000h if not L4 circuit
  3951. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  3952.       John Wiseman which allows a PC to act as a node in an AX.25 network
  3953. SeeAlso: AH=01h"G8BPQ",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ"
  3954.  
  3955. Bitfields for G8BPQ session type:
  3956. Bit(s)    Description    (Table 3197)
  3957.  0    L2LINK
  3958.  1    SESSION
  3959.  2    UPLINK
  3960.  3    DOWNLIND
  3961.  5    BPQHOST
  3962. --------T-7F09-------------------------------
  3963. INT 7F - MultiLink Advanced v1.0+ - SET TASK PRIORITY
  3964.     AH = 09h
  3965.     AL = priority (0-7)
  3966. Note:    the installation check consists of ensuring that the interrupt vector
  3967.       is not pointing at segment 0000h, then checking whether the byte
  3968.       at offset 0000h in the interrupt handler's segment is E9h
  3969. Index:    installation check;MultiLink Advanced
  3970. SeeAlso: AH=00h"MultiLink",AH=0Ah"MultiLink"
  3971. --------N-7F09-------------------------------
  3972. INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS
  3973.     AH = 09h
  3974.     AL = application
  3975.         00h node
  3976.         01h BBS
  3977.         02h HOST
  3978.         03h SYSOP
  3979.     BL = what to get (00h callsign, 01h application name)
  3980.     ES:SI -> buffer for callsign/name string
  3981. Return: CX = length of returned string
  3982. SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ"
  3983. --------N-7F09-------------------------------
  3984. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  3985.     AH = 09h
  3986.     CL = function
  3987.         00h enable checking of RTNX.MUD file
  3988.         01h disable RTNX.MUD checking
  3989. --------N-7F09--CL02-------------------------
  3990. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  3991.     AH = 09h
  3992.     CL = 02h
  3993. Note:    in dedicated mode, the host will only poll for I/O requests from the
  3994.       slave processors, and not provide workstation services
  3995. --------N-7F09--CL03-------------------------
  3996. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  3997.     AH = 09h
  3998.     CL = 03h
  3999.     AL = default interrupt number (67h,7Fh,etc)
  4000. Return: CL = actual interrupt which handles specified interrupt's calls
  4001. SeeAlso: AH=08h
  4002. --------N-7F0A--CL00-------------------------
  4003. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  4004.     AH = 0Ah
  4005.     CL = 00h
  4006.     ES:DI -> buffer for system flags (see #3198)
  4007. Return: ES:DI buffer filled
  4008. Notes:    on a slave, only the NX_Busy flag is returned
  4009.     all three flags are at fixed positions, so this function only needs to
  4010.       be called once
  4011.     an interrupt handler should only perform DOS or device accesses when
  4012.       all three flags are 00h
  4013.  
  4014. Format of Alloy system flags:
  4015. Offset    Size    Description    (Table 3198)
  4016.  00h    DWORD    pointer to NX_Busy flag (nonzero when communicating with users)
  4017.  04h    DWORD    pointer to device driver busy flag
  4018.  08h    DWORD    pointer to InTimer flag
  4019. --------N-7F0A-------------------------------
  4020. INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME
  4021.     AH = 0Ah
  4022.     AL = radio port
  4023.     ES:SI -> buffer containing data to be sent
  4024.     CX = number of bytes to send
  4025. SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ"
  4026. --------T-7F0A-------------------------------
  4027. INT 7F - MultiLink Advanced v1.0+ - SET KEYBOARD TEST STATUS
  4028.     AH = 0Ah
  4029.     AL = task-switch status
  4030.         00h normal (disable task when it repeatedly polls keyboard)
  4031.         01h disable task until keyboard input available
  4032.         FFh never disable task
  4033. Return: ???
  4034. SeeAlso: AH=09h"MultiLink"
  4035. --------N-7F0B--CL02-------------------------
  4036. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  4037.     AH = 0Bh
  4038.     CL = 02h
  4039.     AL = slave ID number
  4040.     CH = DOS to activate
  4041.         00h graphics DOS
  4042.         01h character DOS
  4043. Return: AL = status
  4044.         00h successful
  4045.         01h nothing done, proper DOS type already loaded
  4046. --------N-7F0B-------------------------------
  4047. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME
  4048.     AH = 0Bh
  4049.     ES:DI -> buffer for received data (see #3199)
  4050. Return: CX = number of bytes received
  4051. Note:    the specified buffer must be large enough to receive a full frame
  4052. SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ"
  4053.  
  4054. Format of G8BPQ received data:
  4055. Offset    Size    Description    (Table 3199)
  4056.  00h    WORD    internal control information
  4057.  02h    BYTE    port number (bit 7 set if transmitted frame)
  4058.  03h    WORD    frame length including this header
  4059.  05h    var    user data
  4060. --------N-7F0C-------------------------------
  4061. INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION
  4062.     AH = 0Ch
  4063.     DX = function
  4064.         0001h update beacon text
  4065.         CX = length of data
  4066.         ES:SI -> data to be sent in beacons
  4067.         0002h (v4.07+) initiate NODES broadcast
  4068. SeeAlso: AH=09h"G8BPQ"
  4069. --------N-7F0D00-----------------------------
  4070. INT 7F - G8BPQ v4.07+ - HOST MODE - GET AVAILABLE STREAM
  4071.     AX = 0D00h
  4072. Return: AL = first available stream number, or FFh if none free
  4073. SeeAlso: AH=00h"G8BPQ",AH=0Dh
  4074. --------N-7F0D-------------------------------
  4075. INT 7F - G8BPQ v4.07+ - HOST MODE - ALLOCATE/DEALLOCATE STREAM
  4076.     AH = 0Dh
  4077.     AL = stream number (01h-FFh)
  4078.     CL = function
  4079.         01h allocate stream
  4080.         Return: CX = status (0000h successful, else already in use)
  4081.         02h deallocate stream
  4082. SeeAlso: AX=0D00h
  4083. --------N-7F0F-------------------------------
  4084. INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER
  4085.     AH = 0Fh
  4086. Return: AX = time marker (clock ticks modulo 64K)
  4087. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  4088.       John Wiseman which allows a PC to act as a node in an AX.25 network
  4089. SeeAlso: AH=01h"G8BPQ",AX=0D00h,INT 1A/AH=00h
  4090. --------N-7F10--CL00-------------------------
  4091. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  4092.     AH = 10h
  4093.     CL = 00h
  4094.     AL = channel number
  4095.     DX:DI -> channel buffer
  4096. Return: AL = status (00h-03h,0Dh) (see #3200)
  4097. Note:    may not be invoked from within a hardware interrupt handler
  4098. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  4099.  
  4100. (Table 3200)
  4101. Values for Alloy function status:
  4102.  00h    successful
  4103.  01h    busy
  4104.  02h    channel range error (not 00h-3Fh)
  4105.  03h    invalid subfunction
  4106.  0Ah    channel not open
  4107.  0Ch    channel already locked
  4108.  0Dh    unable to open
  4109. --------N-7F10--CL01-------------------------
  4110. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  4111.     AH = 10h
  4112.     CL = 01h
  4113.     AL = channel number
  4114. Return: AL = status (00h-03h,0Ah) (see #3200)
  4115. Note:    may not be invoked from within a hardware interrupt handler
  4116. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  4117. --------N-7F10--CL02-------------------------
  4118. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  4119.     AH = 10h
  4120.     CL = 02h
  4121.     AL = channel number
  4122. Return: AL = status (00h-03h,0Ah,0Ch) (see #3200)
  4123. Note:    may not be invoked from within a hardware interrupt handler
  4124. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  4125. --------N-7F10--CL03-------------------------
  4126. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  4127.     AH = 10h
  4128.     CL = 03h
  4129.     AL = channel number
  4130. Return: AL = status (00h-03h,0Ah) (see #3200)
  4131. Notes:    should only be used on channels locked with AH=10h/CL=02h, not on those
  4132.       locked by receipt of a datagram
  4133.     may not be invoked from within a hardware interrupt handler
  4134. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  4135. --------N-7F10--CL04-------------------------
  4136. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  4137.     AH = 10h
  4138.     CL = 04h
  4139.     AL = channel number
  4140. Return: AL = status (00h-03h) (see #3200)
  4141. Notes:    unlocks buffer after received datagram has been processed
  4142.     may not be invoked from within a hardware interrupt handler
  4143. SeeAlso: AH=10h/CL=00h
  4144. --------N-7F10--CL05-------------------------
  4145. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  4146.     AH = 10h
  4147.     CL = 05h
  4148. Return: AL = status (00h-03h) (see #3200)
  4149. Notes:    clears all pending datagrams and clears buffer pointers before closing
  4150.       the channels
  4151.     may not be invoked from within a hardware interrupt handler
  4152. SeeAlso: AH=10h/CL=01h
  4153. --------N-7F10--CL06-------------------------
  4154. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  4155.     AH = 10h
  4156.     CL = 06h
  4157. Return: AL = status (00h-03h) (see #3200)
  4158. Note:    may not be invoked from within a hardware interrupt handler
  4159. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  4160. --------N-7F10--CL07-------------------------
  4161. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  4162.     AH = 10h
  4163.     CL = 07h
  4164. Return: AL = status (00h-03h) (see #3200)
  4165. Notes:    unlocks all locked channels which have no pending datagrams
  4166.     may not be invoked from within a hardware interrupt handler
  4167. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  4168. --------N-7F10--CL08-------------------------
  4169. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  4170.     AH = 10h
  4171.     CL = 08h
  4172.     DX = maximum channel number to lock
  4173. Return: AL = status (00h-03h) (see #3200)
  4174. Notes:    locks channels numbered 00h through the value in DX
  4175.     may not be invoked from within a hardware interrupt handler
  4176. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  4177. --------N-7F10--CL09-------------------------
  4178. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  4179.     AH = 10h
  4180.     CL = 09h
  4181.     DX = maximum channel number to unlock
  4182. Return: AL = status (00h-03h) (see #3200)
  4183. Notes:    unlocks channels numbered 00h through the value in DX
  4184.     may not be invoked from within a hardware interrupt handler
  4185. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  4186. --------N-7F11-------------------------------
  4187. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  4188.     AH = 11h
  4189.     DX:SI -> request block (see #3202)
  4190. Return: AL = status (see #3201)
  4191. Note:    if wildcard channel FFh used, actual channel number will be filled in
  4192. SeeAlso: AH=12h
  4193.  
  4194. (Table 3201)
  4195. Values for Alloy function status:
  4196.  00h    successful
  4197.  01h    busy
  4198.  02h    channel range error (not 00h-3Fh)
  4199.  03h    invalid subfunction
  4200.  0Ah    packet too large (or <2 bytes if NTNX)
  4201.  0Bh    can't send packet to itself
  4202.  0Ch    invalid number of destinations
  4203.  0Dh    destination channel number out of range
  4204.  0Eh    destination user is busy
  4205.  0Fh    destination user has locked channel
  4206.  10h    channel not open
  4207.  11h    no datagram server on destination (NTNX)
  4208.  
  4209. Format of Alloy request block:
  4210. Offset    Size    Description    (Table 3202)
  4211.  00h    DWORD    pointer to packet to send
  4212.  04h    WORD    packet size in bytes (1-4096)
  4213.  06h    BYTE    number of destinations for packet (max 1Fh)
  4214.  07h 31 BYTEs    destination user IDs (FFh = broadcast to all except sender)
  4215.  26h 31 BYTEs    destination channels (FFh = first available channel)
  4216.  45h 31 BYTEs    return destination statuses
  4217. --------N-7F12-------------------------------
  4218. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  4219.     AH = 12h
  4220.     AL = channel number being acknowledged
  4221.     DI:DX = 32-bit status to return to sender
  4222. Return: AL = status (see #3203)
  4223. Note:    also unlocks the channel, allowing the next datagram to be received
  4224. SeeAlso: AH=11h,AH=15h/CL=04h
  4225.  
  4226. (Table 3203)
  4227. Values for Alloy function status:
  4228.  00h    successful
  4229.  01h    busy
  4230.  02h    channel range error (not 00h-3Fh)
  4231.  03h    invalid subfunction
  4232.  0Ah    channel not open
  4233.  0Bh    no message in channel
  4234.  0Ch    destination slave busy--retry (NTNX)
  4235.  0Dh    destination user not active
  4236.  0Eh    destination slave not active (NTNX)
  4237.  0Fh    destination disabled datagram service
  4238. --------V-7F1234-----------------------------
  4239. INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
  4240.     AX = 1234h
  4241. SeeAlso: AX=4321h
  4242. --------N-7F13--CL00-------------------------
  4243. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  4244.     AH = 13h
  4245.     CL = 00h
  4246. Note:    clears all pending datagrams and removes all channels opened in NTNX
  4247.       compatibility mode
  4248. --------N-7F14--CL00-------------------------
  4249. INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR
  4250.     AH = 14h
  4251.     CL = 00h
  4252.     DX:DI -> application FAR receive service routine (see #3204)
  4253. Return: AL = status (00h-03h) (see #3203)
  4254. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  4255.  
  4256. (Table 3204)
  4257. Values Alloy receive service routine is called with:
  4258.     DH = sender ID
  4259.     DL = channel with datagram
  4260.     interrupts disabled
  4261. Return: AL = response code
  4262.         00h leave buffer locked, set channel status, and repeat call later
  4263.         01h release channel buffer
  4264.         02h change buffer pointer to DX:DI
  4265.     AH,CX,DX,DI,SI may be destroyed
  4266. --------N-7F14--CL01-------------------------
  4267. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  4268.     AH = 14h
  4269.     CL = 01h
  4270.     DX:DI -> application FAR acknowledge service routine (see #3205)
  4271. Return: AL = status (00h-03h) (see #3203)
  4272. Note:    the service routine will be called as soon as an acknowledgment arrives
  4273. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h
  4274.  
  4275. (Table 3205)
  4276. Values Alloy acknowledge service routine is called with:
  4277.     DS:SI -> acknowledge structure (see #3209)
  4278. Return: AL = response code
  4279.         00h application busy, network executive should call again later
  4280.         01h acknowledge accepted
  4281.     AH,DX,SI may be destroyed
  4282. --------N-7F14--CL02-------------------------
  4283. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  4284.     AH = 14h
  4285.     CL = 02h
  4286.     AL = channel number
  4287.     DX:DI -> receive buffer
  4288. Return: AL = status (00h-03h) (see #3203)
  4289. Note:    may be called from within a receive ISR or when a datagram is pending
  4290. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  4291. --------N-7F14--CL03-------------------------
  4292. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  4293.     AH = 14h
  4294.     CL = 03h
  4295. Return: DX:DI -> current receive ISR
  4296. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  4297. --------N-7F14--CL04-------------------------
  4298. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  4299.     AH = 14h
  4300.     CL = 04h
  4301. Return: DX:DI -> current acknowledge ISR
  4302. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  4303. --------N-7F14--CL05-------------------------
  4304. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  4305.     AH = 14h
  4306.     CL = 05h
  4307.     DX:DI -> buffer for busy structure (see #3206)
  4308. Return: DX:DI buffer filled
  4309.  
  4310. Format of Alloy busy structure:
  4311. Offset    Size    Description    (Table 3206)
  4312.  00h    DWORD    pointer to busy flag byte
  4313.  04h    WORD    fixed port address (FF00h)
  4314. --------N-7F15--CL00-------------------------
  4315. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  4316.     AH = 15h
  4317.     CL = 00h
  4318.     AL = channel number
  4319.     DX:DI -> status structure (see #3207)
  4320. Return: AL = status (00h-03h) (see #3203)
  4321. SeeAlso: AH=15h/CL=01h
  4322.  
  4323. Format of Alloy channel status structure:
  4324. Offset    Size    Description    (Table 3207)
  4325.  00h    BYTE    channel status
  4326.         bit 0: channel open
  4327.         bit 1: channel buffer contains received data
  4328.         bit 7: channel locked
  4329.  01h    BYTE    sender ID
  4330. --------N-7F15--CL01-------------------------
  4331. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  4332.     AH = 15h
  4333.     CL = 01h
  4334.     DX:DI -> full-channel structure (see #3208)
  4335. Return: AL = status
  4336.         00h successful
  4337.         01h busy
  4338.         0Ah no datagrams available
  4339. Note:    MW386 v1.0 returns the lowest channel with a datagram; newer versions
  4340.       and NTNX return the oldest datagram
  4341. SeeAlso: AH=15h/CL=00h
  4342.  
  4343. Format of Alloy full-channel structure:
  4344. Offset    Size    Description    (Table 3208)
  4345.  00h    BYTE    number of channel with oldest datagram
  4346.  01h    BYTE    sender ID
  4347. --------N-7F15--CL02-------------------------
  4348. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  4349.     AH = 15h
  4350.     CL = 02h
  4351. Return: AH = number of channels available (40h for MW386)
  4352. Note:    the application may always assume at least 32 channels available
  4353. SeeAlso: AH=15h/CL=03h
  4354. --------N-7F15--CL03-------------------------
  4355. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  4356.     AH = 15h
  4357.     CL = 03h
  4358.     DX:DI -> WORD for return value
  4359. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  4360. SeeAlso: AH=15h/CL=02h
  4361. --------N-7F15--CL04-------------------------
  4362. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  4363.     AH = 15h
  4364.     CL = 04h
  4365.     DX:DI -> status structure (see #3209)
  4366. Return: AL = status
  4367.         00h successful
  4368.         DX:DI structure filled
  4369.         01h busy
  4370.         0Ah no acknowledgement has arrived
  4371. SeeAlso: AH=12h,AH=14h/CL=01h
  4372.  
  4373. Format of Alloy status structure:
  4374. Offset    Size    Description    (Table 3209)
  4375.  00h    BYTE    sender ID
  4376.  01h    BYTE    channel number
  4377.  02h  4 BYTEs    receiver status (see #3203)
  4378. --------N-7F16-------------------------------
  4379. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  4380.     AH = 16h
  4381.     DX:SI -> transfer structure (see #3210)
  4382. Return: AL = status
  4383.         00h successful
  4384.         0Ah source or destination out of range
  4385.         0Bh transfer kernel busy--try again
  4386. Notes:    this call transfers memory contents directly between users; both source
  4387.       and destination user IDs may differ from the caller's ID
  4388.     no segment wrap is allowed
  4389.  
  4390. Format of Alloy transfer structure:
  4391. Offset    Size    Description    (Table 3210)
  4392.  00h    WORD    bytes to transfer
  4393.  02h    BYTE    source ID
  4394.         FEh = caller
  4395.  03h    DWORD    source address
  4396.  07h    BYTE    destination ID
  4397.         FFh = all slaves except caller
  4398.         FEh = caller
  4399.  08h    DWORD    destination address
  4400. --------N-7F21-------------------------------
  4401. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  4402.     AH = 21h
  4403.     AL = sender's user ID
  4404.     DS:DX -> control packet (see #3211)
  4405. Note:    messages or commands are ignored if disabled by the destination user
  4406. SeeAlso: AH=22h
  4407.  
  4408. Format of Alloy control packet:
  4409. Offset    Size    Description    (Table 3211)
  4410.  00h    BYTE    packet type
  4411.         00h message
  4412.         01h NTNX command
  4413.         02h MW386 command
  4414.  01h    BYTE    destination user ID or 'A' for all users
  4415.  02h 62 BYTEs    ASCIZ message (packet type 00h)
  4416.         BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  4417. Note:    a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  4418. --------N-7F22-------------------------------
  4419. INT 7F - Alloy NTNX - GET MESSAGE
  4420.     AH = 22h
  4421. Return: pending messages displayed on user's screen
  4422. SeeAlso: AH=21h
  4423. --------N-7F24-------------------------------
  4424. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  4425.     AH = 24h
  4426.     CL = function
  4427.         00h attach
  4428.         01h release
  4429.     CH = drive (0=A:,1=B:,etc)
  4430. Return: AX = status (see #3212)
  4431. Note:    only drives on the current machine may be attached
  4432.  
  4433. (Table 3212)
  4434. Values for Alloy function status:
  4435.  00h    successful
  4436.  01h    invalid request
  4437.  02h    already attached
  4438.  03h    not attached
  4439.  04h    lock table full
  4440. --------N-7F24-------------------------------
  4441. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  4442.     AH = 24h
  4443.     CL = function
  4444.         02h attach host
  4445.         03h release host
  4446. Return: AX = status (see #3212)
  4447. Note:    the host processor may be attached in order to perform I/O via the host
  4448. --------N-7F25--CL00-------------------------
  4449. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  4450.     AH = 25h
  4451.     CL = 00h
  4452. Return: AH = version suffix letter
  4453.     CH = major version number
  4454.     CL = minor version number
  4455. SeeAlso: AH=25h/CL=01h
  4456. --------N-7F25--CL01-------------------------
  4457. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  4458.     AH = 25h
  4459.     CL = 01h
  4460. Return: CL = executive type (see #3213)
  4461. SeeAlso: AH=25h/CL=00h
  4462.  
  4463. (Table 3213)
  4464. Values for Alloy network executive type:
  4465.  00h    RTNX
  4466.  01h    ATNX
  4467.  02h    NTNX
  4468.  03h    BTNX
  4469.  04h    MW386
  4470.  05h    ANSK
  4471. --------V-7F2525-----------------------------
  4472. INT 7F - TIGA Communications Driver v2.05 - ???
  4473.     AX = 2525h
  4474.     BX = ???
  4475. Return: ???
  4476. SeeAlso: AX=4321h,AX=5555h
  4477. --------N-7F26--CL00-------------------------
  4478. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  4479.     AH = 26h
  4480.     CL = 00h
  4481. Return: AX = file mode bits (see #3214)
  4482. Note:    MW386 does not support file modes, and always returns AX=001Fh
  4483. SeeAlso: AH=26h,AH=26h/CL=06h
  4484.  
  4485. Bitfields for Alloy file mode bits:
  4486. Bit(s)    Description    (Table 3214)
  4487.  0    directory protection enabled
  4488.  1    extended open enabled
  4489.  2    flush on every disk write
  4490.  3    flush on every disk write in locked interval
  4491.  4    flush on reads from simultaneously opened file
  4492. --------N-7F26-------------------------------
  4493. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  4494.     AH = 26h
  4495.     CL = check type to set/reset
  4496.         01h directory protection
  4497.         02h extended open
  4498.         03h flush on every disk write
  4499.         04h flush on disk write if any lock set during write
  4500.         05h flush on all reads if file written
  4501.     AL = new state (00h off, 01h on)
  4502. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  4503. --------N-7F26--CL06-------------------------
  4504. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  4505.     AH = 26h
  4506.     CL = 06h
  4507. Note:    cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  4508. SeeAlso: AH=26h/CL=00h
  4509. --------N-7F30-------------------------------
  4510. INT 7F - Alloy MW386 - GET PORT INFORMATION
  4511.     AH = 30h
  4512.     CX = MW386 port number
  4513. Return: AL = result
  4514.         FFh if port not found
  4515.         else driver unit number
  4516.         BL = port mode
  4517.         BH = port type
  4518.             02h remote
  4519.         DH = owner's machine ID
  4520.         DL = owner's user ID
  4521. SeeAlso: INT 17/AH=8Bh
  4522. --------N-7F31-------------------------------
  4523. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  4524.     AH = 31h
  4525.     ???
  4526. Return: ???
  4527. --------N-7F37-------------------------------
  4528. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  4529.     AH = 37h
  4530. Return: ES:AX -> semaphore table
  4531. --------N-7F37-------------------------------
  4532. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  4533.     AH = 37h
  4534.     DS:DX -> ASCIZ string to display
  4535. Note:    if the string is empty, a terminal update will be forced
  4536. --------N-7F38-------------------------------
  4537. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  4538.     AH = 38h
  4539.     AL = new terminal driver number
  4540.         FFh dummy driver
  4541.         FEh current driver
  4542.         FDh load new driver
  4543.         DS:SI -> new driver
  4544. SeeAlso: AH=39h
  4545. --------N-7F39-------------------------------
  4546. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  4547.     AH = 39h
  4548.     AL = new terminal driver number
  4549.         FFh dummy driver
  4550.         FEh current driver
  4551.         FDh load new driver
  4552.         DS:SI -> new driver
  4553.     DL = user number (FFh = caller)
  4554.     DH = machine number if DL <> FFh
  4555. Return: CF set if invalid user number
  4556.     CF clear if successful
  4557. Notes:    only available to supervisors
  4558.     the new driver number will not take effect until the user is rebooted
  4559. SeeAlso: AH=38h
  4560. --------N-7F3A-------------------------------
  4561. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  4562.     AH = 3Ah
  4563.     DL = user number (FFh = caller)
  4564.     DH = machine number
  4565. Return: CF clear if successful
  4566.         AH = terminal driver number
  4567.         AL = baud rate (00h = 38400, 01h = 19200, etc)
  4568.         CL = parity (00h none, 01h even, 02h odd)
  4569.         CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  4570.     CF set if invalid user number
  4571. SeeAlso: AH=3Bh
  4572. --------N-7F3B-------------------------------
  4573. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  4574.     AH = 3Bh
  4575.     AL = baud rate (00h = 38400, 01h = 19200, etc)
  4576.     CL = parity (00h none, 01h even, 02h odd)
  4577.     CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  4578.     DL = user number (FFh = caller)
  4579.     DH = machine number for user
  4580. Return: CF set if invalid user number
  4581. Notes:    only available to supervisors
  4582.     the new parameters will take effect immediately if the user's terminal
  4583.       has not been started, else AH=3Dh must be called to post the changes
  4584. SeeAlso: AH=3Ah,AH=3Dh
  4585. --------N-7F3C-------------------------------
  4586. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  4587.     AH = 3Ch
  4588.     AL = new state (00h disabled, 01h enabled)
  4589.     DL = user number (FFh = caller)
  4590.     DH = machine number for user
  4591. Return: CF set if invalid user number
  4592. Note:    only available to supervisors
  4593. SeeAlso: AH=3Dh
  4594. --------N-7F3D-------------------------------
  4595. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  4596.     AH = 3Dh
  4597. Note:    should be called whenever a program changes the terminal type or its
  4598.       parameters
  4599. SeeAlso: AH=3Bh
  4600. --------N-7F41-------------------------------
  4601. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  4602.     AH = 41h
  4603.     AL = user ID
  4604.     DS:DX -> ASCIZ filename
  4605. Return: AL = status (see #3215)
  4606. Note:    requests exclusive read/write access to file
  4607. SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX"
  4608.  
  4609. (Table 3215)
  4610. Values for Alloy function status:
  4611.  00h    successful
  4612.  01h    invalid function
  4613.  02h    already locked
  4614.  03h    unable to lock
  4615.  04h    lock table full or semaphore space exhausted
  4616. --------N-7F41-------------------------------
  4617. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  4618.     AH = 41h
  4619.     AL = user ID
  4620.     DS:DX -> ASCIZ semaphore name
  4621. Return: AL = status (see #3215)
  4622. SeeAlso: AH=00h,AH=42h"MW386"
  4623. --------s-7F4150BHC1-------------------------
  4624. INT 7F U - Voyetra - AAPISG - API
  4625.     AX = 4150h ('AP')
  4626.     BH = C1h
  4627.     BL = function (00h-13h)
  4628.         00h initialize (fails except first time called)
  4629.     ???
  4630. Return: AX = status???
  4631.         0000h successful
  4632.         0001h failed
  4633. Program: AAPISG is a driver by Voyetra for the Aztech Sound Galaxy sound board
  4634. BUG:    the function range check uses JL instead of JB, so it will cause a
  4635.       crash if BL >= 80h on entry
  4636. SeeAlso: AX=4331h,AX=564Dh,AX=5658h
  4637. --------N-7F42-------------------------------
  4638. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  4639.     AH = 42h
  4640.     AL = user ID
  4641.     DS:DX -> ASCIZ filename
  4642. Return: AL = status (see #3215)
  4643. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  4644. --------N-7F42-------------------------------
  4645. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  4646.     AH = 42h
  4647.     AL = user ID
  4648.     DS:DX -> ASCIZ semaphore name
  4649. Return: AL = status
  4650.         00h successful
  4651.         01h invalid function
  4652.         03h unable to unlock semaphore
  4653. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  4654. --------V-7F4321-----------------------------
  4655. INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
  4656.     AX = 4321h
  4657. Return: AX = 0000h if installed
  4658. Note:    INT 7F is the default, but may be overridden
  4659. SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h
  4660. --------s-7F4331BHC1-------------------------
  4661. INT 7F U - Voyetra - VAPISG - API
  4662.     AX = 4331h ('C1')
  4663.     BH = C1h
  4664.     BL = function (00h-7Ah)
  4665.     ???
  4666. Return: ???
  4667. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  4668.       sound board
  4669. SeeAlso: AX=4150h,AX=564Dh,AX=5658h
  4670. --------N-7F4E-------------------------------
  4671. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  4672.     AH = 4Eh
  4673.     AL = error mode flags
  4674.         bit 0: display critical disk errors
  4675.         bit 1: display sharing errors
  4676.     DX = 4E58h ("NX")
  4677. Return: AL = status
  4678.         00h successful
  4679. SeeAlso: AH=4Fh
  4680. --------N-7F4F-------------------------------
  4681. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  4682.     AH = 4Fh
  4683.     AL = FCB mode
  4684.         02h read/write compatibility
  4685.         42h read/write shared
  4686.     DX = 4E58h ("NX")
  4687. Return: AL = status
  4688.         00h successful
  4689. --------V-7F5555-----------------------------
  4690. INT 7F - TIGA Communications Driver v2.05 - ???
  4691.     AX = 5555h
  4692.     BX = ???
  4693. Return: ???
  4694. SeeAlso: AX=4321h
  4695. --------s-7F564DBHC1-------------------------
  4696. INT 7F U - Voyetra Multimedia Player - VMP.EXE API
  4697.     AX = 564Dh ('VM')
  4698.     BH = C1h
  4699.     BL = function (00h-1Bh)
  4700.         00h ???
  4701.         Return: CF clear
  4702.             AX = 0000h
  4703.     ???
  4704. Return: AX = FFFFh if invalid function
  4705.     ???
  4706. SeeAlso: AX=4331h,AX=5658h
  4707. --------s-7F5658BHC1-------------------------
  4708. INT 7F U - Voyetra - VAPISG - API
  4709.     AX = 5658h ('VX')
  4710.     BH = C1h
  4711.     BL = function (00h-1Bh)
  4712.     ???
  4713. Return: ???
  4714. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  4715.       sound board
  4716. SeeAlso: AX=4331h,AX=564Dh
  4717. --------N-7F81-------------------------------
  4718. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  4719.     AH = 81h
  4720.     AL = user ID
  4721.     DS:DX -> ASCIZ device name
  4722. SeeAlso: AH=82h
  4723. --------N-7F82-------------------------------
  4724. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  4725.     AH = 82h
  4726.     AL = user ID
  4727.     DS:DX -> ASCIZ device name
  4728. SeeAlso: AH=81h
  4729. --------N-7FA0-------------------------------
  4730. INT 7F - Alloy MW386 - GET USER NAME
  4731.     AH = A0h
  4732.     DL = user number (FFh = caller)
  4733.     DH = machine number for user
  4734.     ES:DI -> 17-byte buffer for ASCIZ user name
  4735. Return: CF set if invalid user number
  4736. SeeAlso: AH=03h,AH=A1h
  4737. --------N-7FA1-------------------------------
  4738. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  4739.     AH = A1h
  4740. Return: AL = process number
  4741.     DL = user number
  4742.     DH = machine number
  4743. SeeAlso: AH=03h,AH=A0h,AH=A2h
  4744. --------N-7FA2-------------------------------
  4745. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  4746.     AH = A2h
  4747.     DL = user number (FFh = caller)
  4748.     DH = machine number for user
  4749. Return: CF clear if successful
  4750.         AL = privilege level
  4751.         00h supervisor
  4752.         01h high
  4753.         02h medium
  4754.         03h low
  4755.     CF set if invalid user number
  4756. SeeAlso: AH=A1h,AH=A3h
  4757. --------N-7FA3-------------------------------
  4758. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  4759.     AH = A3h
  4760.     DL = user number
  4761.     DH = machine number for user
  4762. Return: CF clear if successful
  4763.         AL = login state
  4764.         00h never logged in
  4765.         01h currently logged out
  4766.         03h currently logged in
  4767.     CF set if invalid user number or user not active
  4768. SeeAlso: AH=A2h
  4769. --------N-7FA4-------------------------------
  4770. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  4771.     AH = A4h
  4772.     DS:DX -> ASCIZ password (null-padded to 16 bytes)
  4773. Return: AL = status
  4774.         00h     accepted
  4775.         else invalid password
  4776. --------N-7FA500-----------------------------
  4777. INT 7F - Alloy MW386 - GET USER STATUS
  4778.     AX = A500h
  4779.     DI = machine number and user number
  4780. Return: CF clear if successful
  4781.         BX = user flags
  4782.         bit 5: allow messages
  4783.         CL = scan code for task manager hotkey
  4784.         CH = scan code for spooler hotkey
  4785.         DL = scan code for task swapper hotkey
  4786.         DH = modifier key status
  4787.     CF set if invalid user number
  4788. SeeAlso: AX=A501h
  4789. Index:    hotkeys;Alloy MW386
  4790. --------N-7FA501-----------------------------
  4791. INT 7F - Alloy MW386 - SET USER STATUS
  4792.     AX = A501h
  4793.     BX = user flags (see AX=A500h)
  4794.     CL = scan code for task manager hotkey
  4795.     CH = scan code for spooler hotkey
  4796.     DL = scan code for task swapper hotkey
  4797.     DH = modifier key status
  4798.     DI = machine number and user number
  4799. Return: CF set if invalid user number
  4800. Note:    must have supervisor privilege to set another user's status
  4801. SeeAlso: AX=A500h
  4802. Index:    hotkeys;Alloy MW386
  4803. --------V-7FABCDBX0000-----------------------
  4804. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  4805.     AX = ABCDh
  4806.     BX = 0000h
  4807. Return: AX = total number of functions available
  4808.     ES:BX -> entry point array (see #3216)
  4809. SeeAlso: AX=0104h,AX=0105h
  4810.  
  4811. (Table 3216)
  4812. Values for 8516 Touch Screen function number:
  4813.  00h    check initialization and reset (see #3217)
  4814.  14h    set user-defined subroutine (see #3218)
  4815. Notes:    each driver function takes two stack parameters using Pascal calling
  4816.       conventions: address of parameter block and address of results buffer
  4817.     all pointers are FAR pointers
  4818.     on return, AX contains the status of the call:
  4819.         AX = 0000h successful
  4820.          0001h invalid input
  4821.          0002h interface error
  4822.          0003h unable to perform function
  4823.  
  4824. Format of 8516 Touch Screen Function 00h parameter block:
  4825. Offset    Size    Description    (Table 3217)
  4826.  00h    WORD    0000h (function number)
  4827. Note:    this function should be called before any other device driver functions
  4828.  
  4829. Format of 8516 Touch Screen Function 00h results buffer:
  4830. Offset    Size    Description    (Table 3218)
  4831.  00h    WORD    touch screen status
  4832.         0000h unavailable
  4833.         0001h uncalibrated
  4834.         FFFFh available
  4835.  02h    WORD    aux mouse status (0000h not present, FFFFh present)
  4836. Notes:    the following driver parameters will have been reset to zero:
  4837.       touchdown counter, liftoff counter, position at last touch, position
  4838.       at last lift, int call mask, select on count, select off count,
  4839.       pos select on count, pos select off count.
  4840.     the following driver parameters will have been reset as listed:
  4841.       mouse emulation mode: left on
  4842.       thresholds: 46 on screen, 96 push harder, 80 push release
  4843.       x, y hysteresis: 400
  4844.       data repeat rate: 40/sec
  4845.       select mechanism: push-harder - first-touch
  4846.       coordinate origin: upper left corner
  4847.       filter frequency: medium
  4848.       data block mask: all enabled
  4849.       click lock: on
  4850. --------N-7FB0-------------------------------
  4851. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  4852.     AH = B0h
  4853.     AL = user number
  4854.     DS = code segment
  4855. Note:    MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  4856.       or INT 7F locking functions
  4857. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  4858. --------N-7FB1--SF00-------------------------
  4859. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  4860.     AH = B1h subfn 00h
  4861.     AL = (bits 7-5) 000
  4862.          (bits 4-0) user ID
  4863. Note:    MW386 ignores AL; it releases all semaphores locked using INT 67 or
  4864.       INT 7F locking functions
  4865. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  4866. --------N-7FB2--SF01-------------------------
  4867. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  4868.     AH = B2h subfn 01h
  4869.     AL = (bits 7-5) 001
  4870.          (bits 4-0) user ID
  4871. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  4872. --------N-7FB3--SF02-------------------------
  4873. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  4874.     AH = B3h subfn 02h
  4875.     AL = (bits 7-5) 010
  4876.          (bits 4-0) user ID
  4877. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  4878. --------N-7FB4-------------------------------
  4879. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  4880.     AH = B4h
  4881.     AL = user ID
  4882. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  4883. --------N-7FC3-------------------------------
  4884. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  4885.     AH = C3h
  4886.     AL = byte to write
  4887. Return: CF clear if successful
  4888.     CF set on error
  4889. SeeAlso: AH=C6h
  4890. --------N-7FC5-------------------------------
  4891. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  4892.     AH = C5h
  4893.     AL = new console mode
  4894.         00h keyboard indirect
  4895.         01h keyboard direct
  4896.         02h data handshake enforced
  4897.         03h no data handshake
  4898. Return: CF clear if successful
  4899.         AL = prior console mode
  4900.     CF set on error (caller is not remote user)
  4901. Note:    modes 2 and 3 may be used for input through the console port; no video
  4902.       output should be performed in these modes
  4903. --------N-7FC6-------------------------------
  4904. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  4905.     AH = C6h
  4906.     AL = byte to write
  4907. Return: CF clear if successful
  4908.     CF set on error (caller is not remote user)
  4909. Note:    any terminal driver data translation will be bypassed
  4910. SeeAlso: AH=C3h,AH=C7h
  4911. --------N-7FC7-------------------------------
  4912. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  4913.     AH = C7h
  4914. Return: CF clear if successful
  4915.         AL = byte read
  4916.     CF set on error (no data available or caller is not remote user)
  4917. Note:    used to read data after placing console in mode 2 or 3 (see AH=C5h)
  4918. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  4919. --------N-7FC8-------------------------------
  4920. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  4921.     AH = C8h
  4922.     AL = maximum bytes to read
  4923.     ES:DI -> buffer for console data
  4924. Return: CF clear if successful
  4925.         CX = number of bytes read
  4926.     CF set on error (caller is not remote user)
  4927. SeeAlso: AH=C7h
  4928. --------N-7FCF-------------------------------
  4929. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  4930.     AH = CFh
  4931.     DS:DX -> ASCIZ string containing user number to be reset
  4932. SeeAlso: AH=D6h
  4933. --------N-7FD6-------------------------------
  4934. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  4935.     AH = D6h
  4936.     DS:DX -> reset packet (see #3219)
  4937. Return: never if successful
  4938. Note:    all users will be shut down immediately if successful
  4939. SeeAlso: AH=CFh
  4940.  
  4941. Format of Alloy MW386 reset packet:
  4942. Offset    Size    Description    (Table 3219)
  4943.  00h    DWORD    reset code (60606060h)
  4944.  04h 16 BYTEs    ASCIZ supervisor password padded with nulls
  4945. --------N-7FD7-------------------------------
  4946. INT 7F - Alloy MW386 - POST EVENT
  4947.     AH = D7h
  4948.     AL = user number (if local event)
  4949.     DX = event number
  4950. --------N-7FD8-------------------------------
  4951. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  4952.     AH = D8h
  4953. Return: CF set on error
  4954. Note:    forces all disk buffers to be written out immediately
  4955. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  4956. --------N-7FDB-------------------------------
  4957. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  4958.     AH = DBh
  4959. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  4960. --------N-7FE0-------------------------------
  4961. INT 7F - Alloy MW386 - CREATE DOS TASK
  4962.     AH = E0h
  4963.     AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  4964.     DS:DX -> ASCIZ task name (max 16 bytes)
  4965. Return: CF clear if successful
  4966.         AL = task create ID
  4967.     CF set on error
  4968. Note:    only foreground DOS tasks can use this function
  4969. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  4970. --------N-7FE1-------------------------------
  4971. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  4972.     AH = E1h
  4973.     AL = create ID (from AH=E0h)
  4974. Return: AL = DOS process number
  4975.     CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  4976. Note:    this function should not be called immediately after creating a new
  4977.       DOS task, since the new task is being initialized by a concurrent
  4978.       process
  4979. SeeAlso: AH=E0h,AH=E2h
  4980. --------N-7FE2-------------------------------
  4981. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  4982.     AH = E2h
  4983.     AL = DOS process number (from AH=E1h)
  4984. Return: CF set on error (invalid process number or caller not foreground task)
  4985. Notes:    specified task becomes the foreground task and current task is placed
  4986.       in the background
  4987.     may only be called by a foreground task
  4988. SeeAlso: AH=E0h,AH=E1h
  4989. --------N-7FE3-------------------------------
  4990. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  4991.     AH = E3h
  4992.     DS:DX -> ASCIZ task name
  4993. ---v1.x---
  4994.     AL = user number
  4995. ---v2+---
  4996.     BH = user number
  4997.     BL = task number
  4998. Return: CF clear if successful
  4999.     CF set on error (invalid process number)
  5000. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  5001. --------N-7FE4-------------------------------
  5002. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  5003.     AH = E4h
  5004.     ES:DI -> buffer for task name
  5005. ---v1.x---
  5006.     AL = user number
  5007. ---v2+---
  5008.     BH = user number
  5009.     BL = task number
  5010. Return: CF clear if successful
  5011.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5012.         DX = task flags
  5013.         bit 7: MS-DOS process
  5014.         ES:DI buffer filled
  5015.     CF set on error (invalid process number)
  5016. SeeAlso: AH=E3h,AH=E5h
  5017. --------N-7FE5-------------------------------
  5018. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  5019.     AH = E5h
  5020.     DS:DX -> ASCIZ task name
  5021.     BH = user number
  5022. Return: CF clear if successful
  5023.         AL = DOS process number
  5024.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5025.     CF set on error (no match for name)
  5026. SeeAlso: AH=E3h,AH=E4h
  5027. --------N-7FE6-------------------------------
  5028. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  5029.     AH = E6h
  5030. Return: AX = number of processes available to current user
  5031. SeeAlso: AH=E0h
  5032. --------N-7FE7-------------------------------
  5033. INT 7F - Alloy MW386 - REMOVE DOS TASK
  5034.     AH = E7h
  5035.     AL = DOS process number
  5036. Return: CF clear if successful
  5037.     CF set on error (invalid process number or first process)
  5038. Note:    can only be called by a foreground task
  5039. SeeAlso: AH=E0h
  5040. --------N-7FE8-------------------------------
  5041. INT 7F - Alloy MW386 - DOS TASK DELAY
  5042.     AH = E8h
  5043.     CX = delay time in milliseconds
  5044. Note:    a delay of 0 may be used to surrender the current time slice
  5045. SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS"
  5046. SeeAlso: INT 2F/AX=1680h
  5047. --------N-7FF0-------------------------------
  5048. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  5049.     AH = F0h
  5050.     AL = group number
  5051.     DS:DX -> ASCIZ directory name
  5052. Return: CF clear if successful
  5053.         AX = status
  5054.         0002h directory not found
  5055.         0003h directory not found
  5056.         0005h directory in use, cannot be restricted
  5057.         02xxh restricted to group xxh
  5058.     CF set on error
  5059. Note:    the restriction on the directory may be removed by calling this
  5060.       function with group 0, then using AH=F1h to assign the directory to
  5061.       group 0
  5062. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  5063. --------N-7FF1-------------------------------
  5064. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  5065.     AH = F1h
  5066.     AL = group number
  5067.     DS:DX -> ASCIZ directory name
  5068. Notes:    performs permanent assignment to a group; no immediate action is taken
  5069.       unless the directory has been restricted with AH=F0h
  5070.     may be used to restrict a nonexistent directory
  5071. SeeAlso: AH=F0h
  5072. --------N-7FF2-------------------------------
  5073. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  5074.     AH = F2h
  5075.     CX = entry number
  5076.     ES:DI -> 64-byte buffer
  5077. Return: CF clear if successful
  5078.         buffer filled with 63-byte directory info and 1-byte group number
  5079.     CF set on error (invalid entry)
  5080. SeeAlso: AH=F0h,AH=F3h
  5081. --------N-7FF3-------------------------------
  5082. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  5083.     AH = F3h
  5084.     AL = group number
  5085.     CX = entry number
  5086.     ES:DI -> 64-byte buffer
  5087. Return: CF clear if successful
  5088.         CX = next entry number
  5089.         buffer filled with 63-byte directory info and 1-byte group number
  5090.     CF set on error (no more matching entries)
  5091. Note:    like AH=F2h, but only returns directories belonging to the specified
  5092.       group
  5093. SeeAlso: AH=F2h
  5094. --------N-7FF8-------------------------------
  5095. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  5096.     AH = F8h
  5097.     AL = group number
  5098.     DL = user number
  5099.     DH = machine number (currently 00h)
  5100. Return: CF clear if successful
  5101.     CF set on error (user already in maximum number of groups)
  5102. Note:    each user is allowed eight group assignments
  5103. SeeAlso: AH=F9h,AH=FAh
  5104. --------N-7FF9-------------------------------
  5105. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  5106.     AH = F9h
  5107.     AL = group number
  5108.     DL = user number
  5109.     DH = machine number (currently 00h)
  5110. Return: CF clear if successful
  5111.     CF set if failed
  5112. SeeAlso: AH=F8h,AH=FAh
  5113. --------N-7FFA-------------------------------
  5114. INT 7F - Alloy MW386 - GET USER GROUP LIST
  5115.     AH = FAh
  5116.     DL = user number
  5117.     DH = machine number (currently 00h)
  5118.     ES:DI -> 16-byte buffer for group list
  5119. Return: CX = number of groups
  5120.     ES:DI buffer filled with group numbers
  5121. SeeAlso: AH=F8h,AH=F9h
  5122. --------N-7FFB-------------------------------
  5123. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  5124.     AH = FBh
  5125.     CL = group number
  5126.     ES:DI -> ASCIZ group name (max 17 bytes)
  5127. SeeAlso: AH=FCh
  5128. --------N-7FFC-------------------------------
  5129. INT 7F - Alloy MW386 - GET GROUP NAME
  5130.     AH = FCh
  5131.     CL = group number
  5132.     ES:DI -> 17-byte buffer for ASCIZ name
  5133. Return: ES:DI buffer filled
  5134. Note:    if the group has not been named, "(unnamed)" is returned
  5135. SeeAlso: AH=FBh
  5136. --------!---Section--------------------------
  5137.